java - 泛化类的方法调用

标签 java generics methods

下一段代码

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/

相关文章:

java - 通用类问题!

generics - F#成员约束+ ^ a byref参数

java - `Iterable` 的接口(interface)转换

java - 返回 super.onOptionsItemSelected(item);没有调用父方法

Ruby Monk - 了解继承 - 不接受替代解决方案?

java - 为什么 Alpha/Beta 剪枝对我的 MiniMax 算法没有影响?

java - 初始化 JFrame 窗口时黑屏

java - 使用 spring-data-dynamodb 自定义 DynamoDBMapper

php - 如何给 PHP 中的函数起有意义的名称?

java - 服务器多线程一次仅应答一个客户端