我使用 WSDL 文件中的 CXF 生成一些代码。当使用 -Xlint 标志编译版本“1.6.0_16”的代码时,我收到以下警告:
warning: [cast] redundant cast to javax.xml.bind.JAXBElement<java.lang.Boolean>
[javac] this.r = ((JAXBElement<Boolean> ) value);
警告是什么意思,我应该担心吗?由于我已经生成了代码而不是编写了代码,我该怎么做才能消除这个特定的警告?
不,你不应该担心,多余的演员表是无害的。
生成的代码编译时带有警告是很常见的,您通常会忽略它们。 更好的是,将生成的代码编译到单独的 JAR 中,并从主代码中引用它。这样,您就不需要重新编译生成的代码,并且每次都不会看到警告。
我在CXF生成代码时遇到了类似的问题冗余转换为byte [],而-Werror和-Xlint:all在maven中设置来编译代码
我/我们的一个可能的解决方法是添加:
-Xlint:-cast 抑制警告并保留 -Werror 标志