classdemo.java

来自「java写的一个反射的例子 大家看看 虽u然小 但能是说明问题」· Java 代码 · 共 72 行

JAVA
72
字号
import java.lang.reflect.Constructor;
import java.lang.reflect.Method;
class person{
	public void print(){
		System.out.println ("aa");
	}
}
class teacher extends person{
public void print(){
		System.out.println ("teacher");
	}	
}
class student extends person{
String name;
int age=59;
student(){
	System.out.println ("aaa");
}
student(String name){
	this.name=name;
}
public void print(){
		System.out.println (name);
	}
public int add1(int a,int b){
	return a+b+age;
}
public int add2(){
	return age;
}
public static int add3(int a){
	return a;
}
public static int add4(){
	return 100;
	
} 
	
	
}

class test{
	public static void main (String[] args) {
  try {
  	//student ss=new student();
  	String name=args[0];
  	Class cc=Class.forName(name);
  	// 通过class.newInstance();实际调用了不带参数的构造方法
  	
  	Object o=cc.newInstance();
  	
  	Constructor constr=cc.getDeclaredConstructor(new Class[]{String.class});
    Object ccc=	constr.newInstance(new Object[]{"kllllll"});
  //	Method method=cc.getDeclaredMethod("add1",new Class[]{int.class,int.class});
  	Method method=cc.getDeclaredMethod("add3",new Class[]{int.class});
  	//	Method method=cc.getDeclaredMethod("add2",null);
  	Object oo=method.invoke(null, new Object[]{50});
  	System.out.println ((Integer)oo);
  	
  	
  	
  	person pp=(person)ccc;
  	pp.print();
  	
  	
    
}
catch (Exception ex) {
	ex.printStackTrace();
}
}
}

⌨️ 快捷键说明

复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?