我下载了Bouncy castle的一些第三方jar,在NetBeans中创建了一个项目,该项目提供了一些java加密API。我还下载了souce代码,并按照包名将它们放在src文件夹下。然而,我在项目中的一些java文件显示为红色,其中包含错误。这是一个像这样的
getparams() in org.bouncycastle.jce.provider.JCEECPrivateKey cannot implement
getParams() in rg.bouncycastle.jce.interfaces.ECKey
found : java.security.spec.ECParameterSpec
required: rg.bouncycastle.jce.ECParameterSpec
但奇怪的是,当我真正从NetBeans编译代码时,编译是成功的,并且创建了最终的jar文件。然而,汇编中说:
Note: Some input files use or override a deprecated API.
Note: Recompile with -Xlint:deprecation for details.
Note: Some input files use unchecked or unsafe operations.
Note: Recompile with -Xlint:unchecked for details.
我的问题是:尽管有些文件似乎有错误,为什么汇编仍在进行?我可以忽略这些良性的吗?
如何在NetBeans中使用-Xlint进行编译,因为我是通过单击项目和Clean and Build选项进行编译的。
同意@Harry Joy的观点,贬低不是错误。如果可以,您必须避免使用不推荐使用的方法或API。因为我们不知道Oracle什么时候会在JDK的下一个版本中删除这个不推荐使用的方法。
如果您想在NetBeans中使用-Xlint:deposition进行编译,您可以右键单击项目节点(在检查器窗口中),然后选择Properties。
在"属性"窗口中,选择"构建">"编译"。请搜索字段"Additional Compiler Options",然后在此字段中输入Xlint:deprecation。完成后,您可以按"确定"按钮。
顺便说一句,您可以在该字段中传递任何其他选项,如"Xlint:unchecked":)
看起来您有一个命名冲突。你可能有
import java.security.spec.*;
import rg.bouncycastle.jce.*;
但是两个封装都定义了CCD_ 1。如果这是您的问题,您可以使用rg.bountycaslte.jce.ECParameterSpec myvar = ...
显式定义变量类型,也可以添加导入语句import rg.bouncycastle.jce.ECParameterSpec;
来指定您真正想要的类型。