无参构造器 + 方法的调用
package com.studio;
import java.lang.reflect.Method;
class User {
private String name;
/*无参构造器*/
public User ( ) {
}
public String getName ( ) {
return name;
}
public void setName( String name) {
this.name = name;
}
@Override
public String toString ( ) {
return "User [name=" + name + "]" ;
}
}
public class ReflectTest {
public static void main( String[ ] args) throws Exception {
// 加载类字节码
Class< ?> clazz = ReflectTest.class.getClassLoader( ) .loadClass( "com.studio.User" ) ;
// 使用默认构造器创建对象
Object instance = clazz.getConstructor( ) .newInstance( ) ;
// 获取方法( 方法名+参数类型)
Class< ?> paramTypes[ ] = new Class[ 1 ] ;
paramTypes[ 0 ] = Class.forName( "java.lang.String" ) ;
Method method = instance.getClass( ) .getMethod( "setName" , paramTypes) ;
// 调用方法( this+参数)
Object paramValues[ ] = new Object[ 1 ] ;
paramValues[ 0 ] = "小明" ;
method.invoke( instance, paramValues) ;
System.out.println( instance) ;
}
}