相关疑难解决方法(0)

为什么禁止这种未经检查的警告是安全的?

考虑Effective Java泛型章节中UnaryFunction定义的接口.

public interface UnaryFunction<T> {
T apply(T arg);
}
Run Code Online (Sandbox Code Playgroud)

和以下代码返回 UnaryFunction

// Generic singleton factory pattern
private static UnaryFunction<Object> IDENTITY_FUNCTION = new UnaryFunction<Object>() {
  public Object apply(Object arg) { return arg; }
};

// IDENTITY_FUNCTION is stateless and its type parameter is
// unbounded so it's safe to share one instance across all types.
@SuppressWarnings("unchecked")
public static <T> UnaryFunction<T> identityFunction() {
  return (UnaryFunction<T>) IDENTITY_FUNCTION;
}
Run Code Online (Sandbox Code Playgroud)

为什么演员IDENTITY_FUNCTION(UnaryFunction<T>)安全?

这本书说的是我要问的问题,但我不能遵循这里的逻辑.我们在哪里调用apply执行身份操作的函数?我很困惑,因为它是返回传递给它的同一个对象而不修改任何东西的函数.

IDENTITY_FUNCTION (UnaryFunction<T>) …

java generics effective-java

7
推荐指数
1
解决办法
279
查看次数

标签 统计

effective-java ×1

generics ×1

java ×1