我在考慮檢查方法是否被聲明的可能性?例如在代碼如何檢查方法是否使用反射聲明?
class foo
{
variable.getSomething(true);
}
我可以檢查方法getSomething(true)是否被聲明,什麼是使用反射的布爾arrgument的值?
我在考慮檢查方法是否被聲明的可能性?例如在代碼如何檢查方法是否使用反射聲明?
class foo
{
variable.getSomething(true);
}
我可以檢查方法getSomething(true)是否被聲明,什麼是使用反射的布爾arrgument的值?
您使用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
}
您應該提供一點解釋,不僅僅是明碼。 –
@kocko你是對的。有時我只是先做簡單的事情然後編輯它以包含完整的答案。 –
你是說如果對象實現一個方法?如果是這樣,變量應該是已經定義的對象的一個實例? –
是 - > http://docs.oracle.com/javase/tutorial/reflect/ –
嘗試使用getMethod它會拋出NoSuchMethodException –