是eclipse还是maven-compiler-plugin错误,泛型类强制转换问题?
|
我有这样的代码:
protected <T> T doSomething(String someParam, Class<T> clazz) {
...
}
我在TestCase类中使用的:
Class clazz = MyClass.class;
MyClass MyClass = someObject.doSomething(someString, clazz);
这段代码在eclipse中给出了警告:
类是原始类型。泛型类型Class的引用应参数化
和
这行有多个标记
-类型安全性:MyClass类型的通用方法doSomething(String,Class)的未经检查的调用doSomething(String,Class)
-类型安全性:Class类型的表达式需要未经检查的转换才能符合Class
当我在Eclipse中运行此代码(测试)时-一切正常。当我通过命令提示符通过“ mvn clean install \”执行此操作时,我得到:
C:\\ pathToProject \\ src \\ test \\ java \\ packagesPath \\ MyTestCase.java:发现[xx,xxx]不兼容的类型:
java.lang.Object
必需:com.somePackagePath.MyClass
但是提供时:
Class<MyClass> clazz = MyClass.class;
MyClass MyClass = someObject.doSomething(someString, clazz);
我没有任何错误或警告。 。
我了解Java编译器会删除类型信息,因此:
eclipse是否应该提供编译器错误而不是警告,或者是导致问题的maven-plugin-compiler?
Maven插件是:
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-compiler-plugin</artifactId>
<configuration>
<source>1.6</source>
<target>1.6</target>
<showDeprecation>false</showDeprecation>
<debug>true</debug>
<encoding>UTF-8</encoding>
</configuration>
</plugin>
亲切的问候,
暴君
没有找到相关结果
已邀请:
3 个回复
磨标烫徽啪
弛保矮瘦敖
际恃啸称桅