-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. 从Python中的静态方法调用非静态方法
- 3. 对静态方法的静态引用(在主要方法中)
- 4. Java8动态代理和默认方法
- 5. 非静态类中的静态方法和静态类中的静态方法有什么区别?
- 6. C++中的静态方法
- 7. matlab中的静态方法
- 8. PHP中的静态方法
- 9. F#中的静态方法
- 10. Java中的静态方法
- 11. C#中的静态方法?
- 12. java中的静态方法
- 13. Java中的静态方法
- 14. 静态方法
- 15. 静态方法
- 16. 静态方法
- 17. 静态方法
- 18. 静态方法
- 19. 如何在静态方法中访问静态和非静态方法
- 20. 非静态的静态方法
- 21. 非静态方法说它的静态?
- 22. 在Dao类中使用静态方法或非静态方法?
- 23. 从另一个静态方法中调用静态方法
- 24. C++中的多态性静态方法
- 25. 静态方法或使用静态字段的非静态方法
- 26. 非静态方法无法从Android Studio中的非静态方法调用
- 27. Java错误:静态方法无法引用非静态方法
- 28. 在静态方法
- 29. Java静态方法
- 30. PHP静态方法
你有没有试过Google为“java 8 interface static method”之类的东西? –