首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >收到来自javac -Xlint:unchecked的警告

收到来自javac -Xlint:unchecked的警告
EN

Stack Overflow用户
提问于 2011-02-25 15:50:11
回答 4查看 8.6K关注 0票数 5

在尝试使用-Xlint开关后,我收到了两个警告。如何解决这些警告?

代码语言:javascript
复制
test:quadrantRDBTemplate mymac$ javac -Xlint:unchecked -cp mysql-connector-java-5.0.jar:iucbrf.jar *.java 
QuadrantSystemRDB.java:271: warning: [unchecked] unchecked call to put(K,V) as a member of the raw type java.util.HashMap
    argMap.put(xKey, new UniformDistribution(-1, 1));
              ^
QuadrantSystemRDB.java:272: warning: [unchecked] unchecked call to put(K,V) as a member of the raw type java.util.HashMap
    argMap.put(yKey, new UniformDistribution(-1, 1));
              ^
2 warnings
EN

回答 4

Stack Overflow用户

回答已采纳

发布于 2011-02-25 15:54:44

原始类型是一种可以有类型参数的类型,但还没有开始。例如,对于键和值的类型,Map (和HashMap)可以分别具有类型参数KV

因此,您可以指定一个Map<Integer,String>来指示映射包含Integer对象作为键,并将它们映射到String对象。

如果您只使用Map,那么您就不需要提供这些信息。原始类型的存在主要是为了向后兼容,没有理由在新代码中使用它们。

解决方案:为Map提供适当的类型。根据您的代码,V将是UniformDistributionK将是yKeyxKey的类型。

票数 7
EN

Stack Overflow用户

发布于 2011-02-25 15:55:17

你应该使用泛型!!假设您的xKey类型是String,然后将argMap声明为:

代码语言:javascript
复制
Map<String, UniformDist> argMap = new HashMap<String, UniformDist>()
票数 4
EN

Stack Overflow用户

发布于 2011-02-25 15:54:20

argMap使用泛型。我认为QuadrantSystemRDB来自您的代码。如果不是,您几乎不能做任何事情:)

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/5114843

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档