回答
排序,但函數不能像一個函數式編程語言一樣獨立於第一類公民。
在Java 8中,您可以將方法添加到接口或Enum。
public interface Loggable {
default Logger logger() {
return LoggerFactory.getLogger(this.getClass());
}
}
public enum Level {
HIGH (3),
MEDIUM(2),
LOW (1)
private final int levelCode;
Level(int levelCode) {
this.levelCode = levelCode;
}
public int getLevelCode() {
return this.levelCode;
}
}
還有一個在爪哇8特殊註釋稱爲FunctionalInterface可用於創建一個功能接口,可在管線來實現,而不是一個類的成員。
如果您真的想在Java中進行函數式編程,因爲您希望避免在低級函數中維護狀態,那麼您可以始終使這些函數保持靜態,然後將該類視爲一個包。這樣你就不必做任何對象創建。
編號Java沒有函數,只有屬於類的一部分的方法。
「僅屬於類的一部分的方法」Java具有不屬於類的一部分的方法。 – jeremyjjbrown
@jeremyjjbrown:好的,你能舉一個例子嗎? –
我的答案中有一個例子。 – jeremyjjbrown
不,Java 8中的函數由功能接口表示。一個函數接口可以通過實現該接口的類來實現,通過實現該接口的單一方法的lambda表達式或通過方法引用來實現。在所有這些情況下,「功能」的實現都存在於某個類中。
你可以聲明一個final class
,它不能實例化(使private
構造函數),並把你的函數作爲這個類的靜態方法。您可以將此類視爲您的函數的「命名空間」。在不指定類名稱中使用他們,你可以導入靜態這個類:
import static com.example.mypackage.MyUtilityClass.*;
這種方法被廣泛應用於許多Java庫和JDK(例如,java.lang.Math
類)。
- 1. Java中的功能接口8
- 2. ByteBuddy Pipe.Binder失敗用java 8功能
- 3. Java 8可選/功能代碼優化
- 4. 無法推斷功能接口類型JAVA 8
- 5. C++和JAVA功能
- 6. 創作的Java雙功能和功能
- 7. Java中的非類功能
- 8. 訪問的Java類/功能
- 9. Java類運行功能
- 10. 的Java 8:功能界面,檢查權限和返回響應
- 11. 類型和功能
- 12. 類功能和Tkinter
- 13. 的Java 8和Java 8
- 14. Java類功能不能正常工作
- 15. 功能與Linux和Java
- 16. 的Java 8和Android有可能
- 17. 功能提取和分類
- 18. Coda功能和類查找
- 19. 廠的功能和子類
- 20. 功能和多類層次
- 21. 功能和類繼承
- 22. 類和這個功能
- 23. PolyML功能和種類
- 24. NG-類功能和表達
- 25. 功能和結構與類
- 26. 模板功能和類
- 27. java 8和硒
- 28. Java 8關閉和類型識別
- 29. IE 8,object required javascript功能
- 30. 在java中尋找類似的功能
謝謝你的解釋。 – jal
@ user5073576 - 既然你是新來的,我會讓你知道你應該提出任何/所有對你發現的問題的答案。如果您認爲其中一個答案最好地解決了您的問題,您可以接受它是正確的,以便社區知道您的問題已解決。 – jeremyjjbrown
@jeremyjjbrown:OP聲稱,當你有一個函數時,不需要類,但也不需要接口或枚舉(它本質上是一個類)。而且,如果沒有周圍的方法(或類,...),你也不能聲明lambda表達式。我的意思是說,Java不允許像例如相同的方式使用自由浮動函數C++的確如此。 –