Java 8:目标类型上下文目标类型在您的示例中
在阅读文章Lambda的状态时,我来到了目标类型主题,我对以下段落有点困惑:
ActionListener l = (ActionEvent e) -> ui.dazzle(e.getModifiers());
此方法的含义是,同一个 lambda 表达式在不同的上下文中可以具有不同的类型:
Callable<String> c = () -> "done"; PrivilegedAction<String> a = () -> "done";
在第一种情况下,lambda 表达式表示 的实例。在第二种情况下,同一表达式表示特权操作的实例。
() -> "done"
Callable
编译器负责推断每个 lambda 表达式的类型。它使用表达式出现的上下文中预期的类型;此类型称为目标类型。lambda 表达式只能出现在目标类型为函数接口的上下文中。
你能用一个简单的方式解释一下与引用的段落有关的这些要点吗:
- 目标类型
- 上下文
如果您还提供代码片段,我将不胜感激。