62,620
社区成员
发帖
与我相关
我的任务
分享package com.NonsenceNumberOne;
import java.lang.reflect.Constructor;
public class ReflectDemo {
public static void main(String[] args) {
Class<?> demo=null;
try{
demo=Class.forName("com.NonsenceNumberOne.Person1");
}catch (Exception e) {
e.printStackTrace();
}
Person1 per1=null;
Person1 per2=null;
Person1 per3=null;
Person1 per4=null;
Constructor<?> cons[]=demo.getConstructors();
try{
//这里会报错
/*per1=(Person1)cons[0].newInstance();
per2=(Person1)cons[1].newInstance("songnan");
per3=(Person1)cons[3].newInstance("songnan",10);
per4=(Person1)cons[2].newInstance(20);*/
//这里不报错
per1=(Person1)cons[0].newInstance("songnan");
per2=(Person1)cons[1].newInstance(20);
per3=(Person1)cons[3].newInstance();
per4=(Person1)cons[2].newInstance("songnan",20);
}catch(Exception e){
e.printStackTrace();
}
System.out.println(per1);
System.out.println(per2);
System.out.println(per3);
System.out.println(per4);
}
}
class Person1{
public Person1(){
System.out.println("wwwwww");
}
public Person1(String name){
this.name = name;
}
public Person1(int age){
this.age = age;
}
public Person1(String name,int age){
this.age = age;
this.name = name;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public int getAge() {
return age;
}
public void setAge(int age) {
this.age = age;
}
@Override
public String toString(){
return "["+this.name+" "+this.age+"]";
}
private String name;
private int age;
}