功能接口之间的转换

功能接口之间的转换

💡 原文约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可以直接使用。

➡️

继续阅读