下一段代码
public class FilterState<T>{
Map<String, Object> getProperties(){return null;} // null for shorteness
}
....
public test(FilterState filterState){
Map<String, Object> map = filterState.getProperties();
}
产生警告
Unchecked assignment: 'java.util.Map' to 'java.util.Map<java.lang.String, java.lang.Object>
但是,如果我用
替换过程定义public <T> test(IFilterState<T> filterState)
警告消失。我不知道泛型类与 map 分配有什么关系。快速搜索通用文档没有帮助。知道在哪里看吗? :)
最佳答案
如果您放弃通用类型参数,整个类 将被视为使用原始类型,并且该类的所有通用类型信息都将被忽略。这就是这里发生的事情。
关于java - 泛化类的方法调用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11362370/