2016-08-03 64 views
0

我有項目在java7中,我現在想轉換爲java8。什麼時候在JAVA中使用功能接口8

因爲我有一個代碼,它調用了我已經轉換爲Java 8的方法,如下所示。

JAVA 7:

Long id=10; 
Student student= Student.findById(id); 

JAVA 8

Long id=10; 
Function<Long,Student> f=Student::findById; 
f.apply(id); 

現在我的問題不作任何意義轉換的方法調用像這樣以JAVA 8

如果是的話是什麼上面的代碼之間的差異在JAVA 7和JAVA 8

誰能請澄清這???

+2

不建議將每條線都轉換爲具有新的Java 8功能。有時它可能會弄亂你的*舊代碼*。 –

回答

2

在您的Java 7示例中,您調用第2行中的findById()並將結果分配給學生。通過在Java 8代碼中使用方法引用進行剪切,首先保存對f中findById()方法的引用,然後在第3行中調用該方法。方法引用使您能夠延遲方法的調用。結合Streams,您可以通過這種方式實現。

對於您的示例,使用方法引用沒有意義,因爲它們不會給您帶來任何好處。如果要將方法引用傳遞給其他函數或延遲調用,則可以使用方法引用。否則,你只需用明確的應用程序調用來清理你的代碼。

我推薦看一下Java 8的介紹,其中有些例子。我讀了Functional Programming in Java這本書,只能推薦它。

+0

感謝您的幫助! – Prakash

相關問題