java反射中method類中的invoke方法作用
阿新 • • 發佈:2018-01-17
argument 方法 names 反射 java invoke 作用 odex table
首先Method類代表一個方法,所以invoke(調用)就是調用Method類代表的方法。它可以讓你實現動態調用,例如你可以動態的傳人參數。下面是一個簡單的例子。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 |
public class MethodTest
{
public static void main(String[] args)
{
String [] names ={ "tom" , "tim" , "allen" , "alice" };
Class<?> clazz = Test. class ;
try
{
Method method = clazz.getMethod( "sayHi" , String. class );
for (String name:names)
method.invoke(clazz.newInstance(),name);
} catch (NoSuchMethodException e)
{
e.printStackTrace();
} catch (IllegalAccessException e)
{
e.printStackTrace();
} catch (IllegalArgumentException e)
{
e.printStackTrace();
} catch (InvocationTargetException e)
{
e.printStackTrace();
} catch (InstantiationException e) {
e.printStackTrace();
}
}
}
class Test
{
public void sayHi(String name)
{
System.out.println( "Hi " +name);
}
}
|
java反射中method類中的invoke方法作用