java - 如何删除不明确的函数调用

标签 java function digital-signature digital-certificate

请帮我解决这段代码中不明确的调用。

fac.newtransform()fac.new signedinfo() 给出错误提示:

reference to newTransform is ambiguous, both method newTransform(String,TransformParameterSpec) in XMLSignatureFactory and method newTransform(String,XMLStructure) in XMLSignatureFactory match

如何调用 XMLSignatureFactory 中的实际函数?

   XMLSignatureFactory fac =XMLSignatureFactory.getInstance("DOM",
                (Provider) Class.forName(providerName).newInstance());

   Reference ref =fac.newReference("",fac.newDigestMethod(DigestMethod.SHA1, null),
    Collections.singletonList(fac.newTransform(Transform.ENVELOPED, null)),null, null);


   SignedInfo si = fac.newSignedInfo
       (fac.newCanonicalizationMethod
         (CanonicalizationMethod.INCLUSIVE_WITH_COMMENTS, 
             null), 
        fac.newSignatureMethod(SignatureMethod.DSA_SHA1, 
            null),
        Collections.singletonList(ref));

最佳答案

您必须转换第二个参数:

newTransform("foo", (XMLStructure) null)

您会收到不明确的警告,因为 null 是这两种方法的有效参数。您需要添加 (XMLStructure) 转换来告诉编译器您要设置为 null 的对象的类型..

关于java - 如何删除不明确的函数调用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17399215/

相关文章:

javascript - 从 jQuery 事件访问函数中的参数 * 和 * 事件

c++ - 如何返回 0 并终止函数?

javascript - 使用 JS 函数的更好方法

python - 可以使用 Python 在 Windows 证书存储中安装 exe 文件 pfx 文件

java - 可与 Swing 项目的可执行文件一起导出的嵌入式 Derby 数据库的连接字符串

java - 尝试使使用 OpenCV 的 java 应用程序(可执行 Jar)可移植。出现不满意的链接错误

ssl - 非对称 HMAC

Ruby:加密签名字符串以确保真实性?

java - 想要生成随机坐标集(Java/Swing)

java - 无法从 Netbeans 中的 Mysql 检索数据