【发布时间】:2013-09-09 19:26:49
【问题描述】:
为什么这样:
public <T> List<byte[]> getData(T data) {
Location loc = (Location) data;
// ...
}
在此过程中不会产生任何警告:
public <T> List<byte[]> getData(T data) {
List<ScanResult> scanRes = (List<ScanResult>) data;
// ...
}
生成Type safety: Unchecked cast from T to List<ScanResult> ?
我怎样才能安抚警告?
作为一种设计,这种方法声明是一种气味吗?
public <T> List<byte[]> getData(T data)
是不同数据类型的不同类中实现的接口方法——所有实现的第一行就是这样一个演员表
【问题讨论】:
-
请注意,使用泛型方法并不能购买任何东西——它还不如
public List<byte[]> getData(Object data)。
标签: java generics casting type-safety code-design