-2
A
回答
1
3
那麼你是否搜索jdk源代碼?如何至少兩個例子:
Function.identity()
有一個實現爲:
static <T> Function<T, T> identity() {
return t -> t;
}
或者Predicate.isEqual
,看起來像:
static <T> Predicate<T> isEqual(Object targetRef) {
return (null == targetRef)
? Objects::isNull
: object -> targetRef.equals(object);
}
一般我把他們當作靜態工廠方法返回該接口的一個實例。
我有這個,我們在我們的代碼庫使用(but it comes from Holger initially)一個很好的例子:
public interface UncheckedCloseable extends Runnable, AutoCloseable {
@Override
default void run() {
try {
close();
} catch (Exception ex) {
throw new RuntimeException(ex);
}
}
static UncheckedCloseable wrap(AutoCloseable c) {
return c::close;
}
default UncheckedCloseable nest(AutoCloseable c) {
return() -> {
try (UncheckedCloseable c1 = this) {
c.close();
}
};
}
}
0
從我有誤 -
1.這些方法不能被繼承類覆蓋它。
2.他們只能訪問該接口的功能(不能被覆蓋)。
所以,只要你希望你的接口的函數(它不是靜態的,也不是重寫的)使用那個函數(靜態的),就可以使用它們。
因此,您可以使用自己的業務邏輯,自己的排序方法,一些限制或邊界。
所以它可以被用作好像有人打電話給你的功能,你在其他功能的幫助下做你自己的東西。這就像其他程序員實現你的界面來使用一些爲其自己的程序提供支持的函數(例如,可以保存筆記的日曆,計劃你的會議等)。
但請記住,您不應該重寫調用這些靜態函數的函數。
相關問題
- 1. 靜態靜態方法?
- 2. 對靜態方法的靜態引用(在主要方法中)
- 3. 從Python中的靜態方法調用非靜態方法
- 4. java中的靜態方法可以調用非靜態方法
- 5. Java8動態代理和默認方法
- 6. 非靜態類中的靜態方法和靜態類中的靜態方法有什麼區別?
- 7. C#中的靜態方法?
- 8. Java中的靜態方法
- 9. F#中的靜態方法
- 10. C++中的靜態方法
- 11. matlab中的靜態方法
- 12. Enum中的靜態方法
- 13. PHP中的靜態方法
- 14. Java中的靜態方法
- 15. React中的靜態方法
- 16. java中的靜態方法
- 17. 靜態方法
- 18. 靜態方法
- 19. 靜態方法
- 20. 靜態方法
- 21. 靜態方法
- 22. 靜態方法
- 23. 如何在靜態方法中訪問靜態和非靜態方法
- 24. 非靜態方法說它的靜態?
- 25. 非靜態的靜態方法
- 26. 從另一個靜態方法中調用靜態方法
- 27. 在Dao類中使用靜態方法或非靜態方法?
- 28. 從另一個靜態方法中調用matlab靜態方法
- 29. C++中的多態性靜態方法
- 30. 靜態方法或使用靜態字段的非靜態方法
你有沒有試過Google爲「java 8 interface static method」之類的東西? –