💡
原文约200字/词,阅读约需1分钟。
📝
内容提要
接口之间没有自动转换,即使它们看似等价。方法execute接收Supplier,但PrivilegedAction不能直接使用,需通过方法引用进行转换。
🎯
关键要点
- 接口之间没有自动转换,即使它们看似等价。
- 方法execute接收Supplier,但PrivilegedAction不能直接使用。
- 使用Supplier的正确示例:Supplier<String> supplier = () -> 'executando um supplier'; execute(supplier);
- 尝试直接使用PrivilegedAction会导致编译错误。
- 使用方法引用可以进行转换:execute(action::run);
❓
延伸问答
为什么接口之间没有自动转换?
即使接口看似等价,编译器不会自动进行转换。
如何正确使用Supplier接口?
可以通过Supplier<String> supplier = () -> 'executando um supplier'; execute(supplier);来正确使用。
尝试直接使用PrivilegedAction会发生什么?
直接使用PrivilegedAction会导致编译错误,因为execute方法不接受PrivilegedAction。
如何将PrivilegedAction转换为Supplier?
可以使用方法引用,例如execute(action::run)来进行转换。
execute方法的参数类型是什么?
execute方法接收一个Supplier<String>类型的参数。
PrivilegedAction和Supplier之间的主要区别是什么?
PrivilegedAction不能直接传递给需要Supplier的地方,而Supplier可以直接使用。
🏷️
标签
➡️