如何修复:派生自 <class> 的匿名 class 中的 java 方法与 java 方法冲突

How to fix: java method in Anonymous class derived from <class> clashes with java method

Android Studio 给了我一个“来自 [java class] 的匿名 class 中的 [java 方法] 与 [java 方法]”在以下代码的两个 "throws CertificateException" 部分。错误补充:"overridden method does not throw javax.security.cert.CertificateException"如何满足编译器?

坦率地说,我对理解此问题的一般原因和解决方案本身一样感兴趣。注意两条注释掉的行。我添加了它们以查看它是否可以防止错误,希望原因仅仅是没有代码实际抛出指定的异常。没用。

如果正确答案能够解释其确切原因,我将不胜感激(我不明白为什么这是 "anonymous class")。这个确切的代码在很多在线示例中使用,其中许多似乎以类似的方式使用它(参见 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[]{};
          }
        };

您不能抛出 CertificateException,因为 X509TrustManager 中定义的方法会抛出 java.security.cert.CertificateException,这与您尝试抛出的方法不同。

javax.security.cert.CertificateException 不同于 java.security.cert.CertificateException