2014-05-23 52 views
0

我在考慮檢查方法是否被聲明的可能性?例如在代碼如何檢查方法是否使用反射聲明?

class foo 
{ 
variable.getSomething(true); 
} 

我可以檢查方法getSomething(true)是否被聲明,什麼是使用反射的布爾arrgument的值?

+0

你是說如果對象實現一個方法?如果是這樣,變量應該是已經定義的對象的一個​​實例? –

+0

是 - > http://docs.oracle.com/javase/tutorial/reflect/ –

+0

嘗試使用getMethod它會拋出NoSuchMethodException –

回答

1

您使用Class#getMethod()呼叫進行反思。 method_name是您正在查找的方法。對於您希望僅使用小寫字母boolean.class的原語。 Boolean.TYPE也適用於原始值。 Boolean.class根本不起作用,因爲它是對象類型。

Class<variable type> clazz = variable.getClass(); 
try { 
    //Boolean.TYPE can be used instead of boolean.class 
    Method m = clazz.getMethod("method_name", boolean.class); 
    //method exists 
} 
catch(NoSuchMethodException e) { 
     //method does not exist 
} 
+0

您應該提供一點解釋,不僅僅是明碼。 –

+0

@kocko你是對的。有時我只是先做簡單的事情然後編輯它以包含完整的答案。 –

相關問題