62,614
社区成员
发帖
与我相关
我的任务
分享
package ClassTest;
public class MoreConstructor {
public String str;
public int i1;
public int i2;
public int i3;
public MoreConstructor() {
str="默认";
i1=0;
i2=0;
i3=0;
}
public MoreConstructor(String str,int i1) {
this.str=str;
this.i1=i1;
i2=0;
i3=0;
}
public MoreConstructor(String str,int i1,int i2,int i3) {
this.str=str;
this.i1=i1;
this.i2=i2;
this.i3=i3;
}
public void ShowInfor() {
System.out.println(this.str);
System.out.println(this.i1);
System.out.println(this.i2);
System.out.println(this.i3);
}
}
package ClassTest;
import java.lang.reflect.Constructor;
public class MoreConstructorRun {
public static void main(String[] args) {
MoreConstructor MC=new MoreConstructor();
Class cl;
cl=MC.getClass();
Constructor[] csArray;
csArray=cl.getDeclaredConstructors();
// MC.ShowInfor();
MoreConstructor MC1=new MoreConstructor("一个",10);
// MC1.ShowInfor();
MoreConstructor MC2=new MoreConstructor("两个",10,20,30);
// MC2.ShowInfor();
for(int i=0;i<csArray.length;i++) {
Constructor constructor=csArray[i];
MoreConstructor MC0=null;
// csArray[i].setAccessible(true);
Class[] clTmp=constructor.getParameterTypes();
System.out.println("构造函数中的参数为;");
for(int j=0;j<clTmp.length;j++) {
System.out.println(clTmp[j].toString());
}
try {
if(i==0) {
MC0=(MoreConstructor) constructor.newInstance();
MC0.ShowInfor();
}
else if(i==1) {
MC0=(MoreConstructor) constructor.newInstance("一个",10);
MC0.ShowInfor();
}
else if(i==2) {
MC0=(MoreConstructor) constructor.newInstance("两个",10,20,30);
MC0.ShowInfor();
}
}catch(Exception e) {
System.out.println("创建对象异常");
constructor.setAccessible(true);
}
}
}
}
构造函数中的参数为;
默认
0
0
0
构造函数中的参数为;
class java.lang.String
int
int
int
创建对象异常
构造函数中的参数为;
class java.lang.String
int
创建对象异常
也就是说这个感觉是有点随机的情况
而修改过后多次运行也会有创建失败的情况偶发出现:
构造函数中的参数为;
创建对象异常
构造函数中的参数为;
class java.lang.String
int
int
int
创建对象异常
构造函数中的参数为;
class java.lang.String
int
创建对象异常
是不是有点随机的情况?