Android Studio在以下代码的两个“throws CertificateException”部分中给我一个“[java方法]在[java class]与[java method]冲突的Anonymous类中”。错误添加:“重写方法不抛出javax.security.cert.CertificateException”如何满足编译器?
坦率地说,我同样有兴趣了解解决方案本身的一般原因。注意两条注释掉的行。我添加它们以查看它是否可以防止错误,希望原因只是没有代码实际抛出指定的异常。没用。如果正确的答案可以解释这个的确切原因(我不知道这是一个“匿名类”),我会非常感激。这个确切的代码在很多在线示例中使用,其中许多似乎以类似的方式使用它(参见here)。
X509TrustManager trustManager = new X509TrustManager()
{
@Override
public void checkClientTrusted(java.security.cert.X509Certificate[] chain, String authType) throws CertificateException
{
//if (authType == null)
// throw new javax.security.cert.CertificateException();
}
@Override
public void checkServerTrusted(java.security.cert.X509Certificate[] chain, String authType) throws CertificateException
{
}
@Override
public java.security.cert.X509Certificate[] getAcceptedIssuers()
{
return new java.security.cert.X509Certificate[]{};
}
};
答案 0 :(得分:2)
你不能抛出CertificateException
,因为X509TrustManager
中定义的方法会抛出java.security.cert.CertificateException
,这与你想要抛出的方法不同。
javax.security.cert.CertificateException
与java.security.cert.CertificateException
不同。