已有101人关注
JAVA从入门到精通16章16.1 Class类与Java反射照光盘操作老报错
发表在Java图书答疑 2014-07-23
是否精华
版块置顶:
  JAVA从入门到精通第2版16章16.1 Class类与Java反射照光盘操作编码是
  Example_01类
public class Example_01 {
String s;
int i, i2, i3;
private Example_01() {
}
protected Example_01(String s, int i) {
this.s = s;
this.i = i;
}
public Example_01(String... strings) throws NumberFormatException {
if (0 < strings.length)
i = Integer.valueOf(strings[0]);
if (1 < strings.length)
i2 = Integer.valueOf(strings[1]);
if (2 < strings.length)
i3 = Integer.valueOf(strings[2]);
}
public void print() {
System.out.println("s=" + s);
System.out.println("i=" + i);
System.out.println("i2=" + i2);
System.out.println("i3=" + i3);
}
}
  Main_01类
import java.lang.reflect.*;

public class Main_01 {

public static void main(String[] args) {

Example_01 example = new Example_01("10", "20", "30");
Class 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[] exceptionTypes = constructor.getExceptionTypes();
for (int j = 0; j < exceptionTypes.length; j++) {
System.out.println(" " + exceptionTypes[j]);
}
Example_01 example2 = null;
while (example2 == null) {
try {
if (i == 0)
example2 = (Example_01) constructor.newInstance();
else if (i == 1)
example2 = (Example_01) constructor.newInstance("7", 5);
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);
}
}
example2.print();
System.out.println();
}

}

}
老报在创建对象时抛出异常,下面执行setAccessible()方法,是编码错了吧
分享到:
精彩评论 3
hdjj_1125
学分:0 LV1
TA的每日心情
2020-07-16 11:10:11
2014-07-23
沙发
你好, 你有没有用光盘里面的代码,直接复制粘贴到Eclipse中运行试试呢
学分: LV1
TA的每日心情
.
2020-04-14 18:58:43
2014-07-24
板凳
eclipse运行后老是报"在创建对象时抛出异常,下面执行setAccessible()方法"
以下是控制台显示的内容
在创建对象时抛出异常,下面执行setAccessible()方法
在创建对象时抛出异常,下面执行setAccessible()方法
在创建对象时抛出异常,下面执行setAccessible()方法
在创建对象时抛出异常,下面执行setAccessible()方法
在创建对象时抛出异常,下面执行setAccessible()方法
在创建对象时抛出异常,下面执行setAccessible()方法
在创建对象时抛出异常,下面执行setAccessible()方法
在创建对象时抛出异常,下面执行setAccessible()方法
在创建对象时抛出异常,下面执行setAccessible()方法
在创建对象时抛出异常,下面执行setAccessible()方法
在创建对象时抛出异常,下面执行setAccessible()方法
在创建对象时抛出异常,下面执行setAccessible()方法
在创建对象时抛出异常,下面执行setAccessible()方法
在创建对象时抛出异常,下面执行setAccessible()方法
在创建对象时抛出异常,下面执行setAccessible()方法
在创建对象时抛出异常,下面执行setAccessible()方法
在创建对象时抛出异常,下面执行setAccessible()方法
在创建对象时抛出异常,下面执行setAccessible()方法
在创建对象时抛出异常,下面执行setAccessible()方法
在创建对象时抛出异常,下面执行setAccessible()方法
在创建对象时抛出异常,下面执行setAccessible()方法
在创建对象时抛出异常,下面执行setAccessible()方法
在创建对象时抛出异常,下面执行setAccessible()方法
在创建对象时抛出异常,下面执行setAccessible()方法
在创建对象时抛出异常,下面执行setAccessible()方法
在创建对象时抛出异常,下面执行setAccessible()方法
在创建对象时抛出异常,下面执行setAccessible()方法
在创建对象时抛出异常,下面执行setAccessible()方法
无语_mrkj
学分:3155 LV11
2014-07-28
地板
您把光盘中提供的项目导入到eclipse运行试试。
首页上一页 1 下一页尾页 3 条记录 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经营性网站备案信息 营业执照