返回信息流泛型不是不可变的吗,为什么这种写法能编译通过
private static List<Object> IDENTITY_FUNCTION =
new ArrayList<Object>();
public static <T> List<T> identityFunction()
{
return (List<T>) IDENTITY_FUNCTION;
}
这是一条镜像帖。来源:北邮人论坛 / java / #54291同步于 2016/12/12
该镜像源已超过 30 天没有更新,可能在源站已被删除。
Java机器人发帖
请教一个泛型不可变的问题
ljq661
2016/12/12镜像同步2 回复
订阅后,新回复会通过你的通知中心匿名送达。
2 条回复
泛型擦除发生在边界处
也就是在方法内部,T被擦除到了Object,以下三句等价
return (List<T>)IDENTITY_FUNCTION;
return (List<Object>)IDENTITY_FUNCTION;
return (List)IDENTITY_FUNCTION;
【 在 ljq661 的大作中提到: 】
: 泛型不是不可变的吗,为什么这种写法能编译通过
: private static List<Object> IDENTITY_FUNCTION =
: new ArrayList<Object>();
: ...................
【 在 liuyehcf 的大作中提到: 】
: 泛型擦除发生在边界处
: 也就是在方法内部,T被擦除到了Object,以下三句等价
: return (List<T>)IDENTITY_FUNCTION;
: ...................
多谢