请帮我解决这段代码中不明确的调用。
fac.newtransform()
和 fac.new signedinfo()
给出错误提示:
reference to
newTransform
is ambiguous, both methodnewTransform(String,TransformParameterSpec)
inXMLSignatureFactory
and methodnewTransform(String,XMLStructure)
inXMLSignatureFactory
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/