2014-02-21 57 views
0

我有一個程序,要求輸入String用戶,這應該是一個實現了Message接口的類的名稱。如果想知道某個類實現一個特定的接口

所有的Java類都在包ist.ap.labs

的代碼,這是一個:

Class cl = null; 

try { 
    cl = Class.forName(className); 
} catch (ClassNotFoundException clnfe) { 
    System.out.println("Class not found!"); 
    System.exit(1); 
} 

if (!cl.isAssignableFrom(ist.ap.labs.Message)) { 
    System.out.println("Class not implements Message!"); 
    System.exit(1); 
} 

但我總是得到一個錯誤說cannot find a symbol:class labs

任何幫助嗎?

+0

看看'類'文字。 –

+1

如果您的問題涉及編譯器錯誤,請始終向我們顯示您的確切和完整的錯誤消息。 –

+1

我懷疑'!ist.ap.labs.Message.class.isAssignableFrom(cl)'是你想要的...... –

回答

0

你必須引用類的文字,不僅類名:

if (!cl.isAssignableFrom(ist.ap.labs.Message.class)) { ... } 
              //^Here 

編輯:是的,喬恩斯基特得到它的評論的權利一次:你必須交換clist.ap.labs.Message.class執行所需的測試。

+0

感謝您的幫助,您是對的。 – Mario

0

你可以做這樣的事情

 Class<?>[] interfaces = Child.class.getInterfaces(); 
     List list = Arrays.asList(interfaces); 
     if(list.contains(Interface.class)){ 
      System.out.println("true...."); 
     } 

這會說你的類是否實現了接口。

相關問題