已有101人关注
一直重复
发表在Java图书答疑 2020-08-12 悬赏:9 学分 《Java从入门到精通(第4版)》第16章 反射
是否精华
版块置顶:

package work;


import java.lang.reflect.Constructor;


public class Main_01 {


public static void main(String[] args) {

Example_01 example=new Example_01("10","20","30");

Class<? extends Example_01>exampleC=example.getClass();

Constructor[] declaredConstructors=exampleC.getDeclaredConstructors();

for(int i=0;i<declaredConstructors.length;i++) {

Constructor<?> constructor=declaredConstructors[i];

System.out.println("查看是否允许带可变数量的参数:"+constructor.isVarArgs());

System.out.println("该构造方法的入口参数类型依次是:");

Class[] parameterTypes=constructor.getParameterTypes();

for(int j=0;j<parameterTypes.length;j++) {

System.out.println(""+parameterTypes[j]);

}

System.out.println("该方法可能抛出的异常类型为:");

Class[] exceptionType=constructor.getExceptionTypes();

for(int j=0;j<exceptionType.length;j++) {

System.out.println(""+exceptionType[j]);

}

Example_01 example2=null;

while(example2==null) {

try {

if(i==2)

example2=(Example_01) constructor.newInstance();

else if(i==1)

example2=(Example_01) constructor.newInstance();

else {

Object[] parameters=new Object[] {new String[]{"100","200","300"}};

example2=(Example_01)constructor.newInstance(parameters);

}

}catch(Exception e) {

System.out.println("在创建对象时抛出异常,下面执行setAccessible()方法");

constructor.setAccessible(true);

}

}

if(example2!=null) {

example2.print();

System.out.println();

}

}

}

}

package work;


import java.lang.reflect.Constructor;


public class Main_01 {


public static void main(String[] args) {

Example_01 example=new Example_01("10","20","30");

Class<? extends Example_01>exampleC=example.getClass();

Constructor[] declaredConstructors=exampleC.getDeclaredConstructors();

for(int i=0;i<declaredConstructors.length;i++) {

Constructor<?> constructor=declaredConstructors[i];

System.out.println("查看是否允许带可变数量的参数:"+constructor.isVarArgs());

System.out.println("该构造方法的入口参数类型依次是:");

Class[] parameterTypes=constructor.getParameterTypes();

for(int j=0;j<parameterTypes.length;j++) {

System.out.println(""+parameterTypes[j]);

}

System.out.println("该方法可能抛出的异常类型为:");

Class[] exceptionType=constructor.getExceptionTypes();

for(int j=0;j<exceptionType.length;j++) {

System.out.println(""+exceptionType[j]);

}

Example_01 example2=null;

while(example2==null) {

try {

if(i==2)

example2=(Example_01) constructor.newInstance();

else if(i==1)

example2=(Example_01) constructor.newInstance();

else {

Object[] parameters=new Object[] {new String[]{"100","200","300"}};

example2=(Example_01)constructor.newInstance(parameters);

}

}catch(Exception e) {

System.out.println("在创建对象时抛出异常,下面执行setAccessible()方法");

constructor.setAccessible(true);

}

}

if(example2!=null) {

example2.print();

System.out.println();

}

}

}

}

运行结果一直重复在创建对象时抛出异常,下面执行setAccessible()方法

分享到:
精彩评论 1
根号申
学分:4736 LV12
TA的每日心情
2021-07-16 23:48:46
2020-08-12
沙发

代码比较器ExamDiff.rar

用这个小软件去和源码文件做比对

首页上一页 1 下一页尾页 1 条记录 1/1页
手机同步功能介绍
友情提示:以下图书配套资源能够实现手机同步功能
明日微信公众号
明日之星 明日之星编程特训营
客服热线(每日9:00-17:00)
400 675 1066
mingrisoft@mingrisoft.com
吉林省明日科技有限公司Copyright ©2007-2022,mingrisoft.com, All Rights Reserved长春市北湖科技开发区盛北大街3333号长春北湖科技园项目一期A10号楼四、五层
吉ICP备10002740号-2吉公网安备22010202000132经营性网站备案信息 营业执照