2013-07-28 46 views
3

我得到這個警告以下代碼: 非可變參數調用vararargs方法與最後一個參數不精確的參數類型;我如何解決它?對於最後一個參數,非可變參數類型的非可變參數方法調用;

private static boolean checkImpled(Class interfaceClass, Class<?> forName) { 

     try { 
      if (!Modifier.isAbstract(forName.getModifiers()) 
        && !forName.isInterface() 
        && interfaceClass.isAssignableFrom(forName) 
        && !interfaceClass.equals(forName) 
        && forName.getConstructor(null) != null) { 
       return true; 
      } 
     } catch (Exception e) { 
      // false 
     } 

     return false; 
    } 
+0

在哪一行,你得到這個 – Abubakkar

回答

0

如果你想獲得無參數的構造函數,你應該叫forName.getConstructor(new Class[]{})而不是forName.getConstructor(null)。這將擺脫你的警告。

因此,沒有警告的代碼可能看起來像:

private final static Class[] EMPTY_PARAM = new Class[]{}; 

private static boolean checkImpled(Class interfaceClass, Class<?> forName) { 
    try { 
     if (!Modifier.isAbstract(forName.getModifiers()) 
       && !forName.isInterface() 
       && interfaceClass.isAssignableFrom(forName) 
       && !interfaceClass.equals(forName) 
       && forName.getConstructor(EMPTY_PARAM) != null) { 
      return true; 
     } 
    } catch (Exception e) { 
     // false 
    } 

    return false; 
} 
相關問題