如何删除歧义函数调用

the*_*s_r 3 java function digital-certificate digital-signature

请帮助我解决此代码中的歧义调用。

fac.newtransform()fac.new signedinfo()给出错误信息:

参照newTransform是模糊的,这两个方法newTransform(String,TransformParameterSpec)XMLSignatureFactory和法newTransform(String,XMLStructure)XMLSignatureFactory匹配

如何在中调用实际函数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));
Run Code Online (Sandbox Code Playgroud)

Dun*_*nes 5

您必须转换第二个参数:

newTransform("foo", (XMLStructure) null)
Run Code Online (Sandbox Code Playgroud)

您正在得到模棱两可的警告,因为这null是两个方法的有效参数。您需要添加(XMLStructure)强制类型转换,以告知编译器要设置为null.. 的对象的类型。