交作业交作业交作业
来源:3-7 自由编程
mixiaofan
2019-10-10 11:29:10
package com.imooc.reflecttest.work;
import java.lang.reflect.Field;
import org.junit.Test;
public class Demo2 {
@Test
public void demo1() throws Exception {
Class class1 = Class.forName("com.imooc.reflecttest.work.Book");
Field field1 = class1.getDeclaredField("name");
Book b1 = (Book) class1.newInstance();
field1.setAccessible(true);
field1.set(b1, "数学");
Object obj1 = field1.get(b1);
System.out.println(obj1);
Class class2 = Class.forName("com.imooc.reflecttest.work.Book");
Field field2 = class2.getField("price");
Book b2 = (Book) class2.newInstance();
field2.set(b2, 200);
Object obj2 = field2.get(b2);
System.out.println(obj2);
}
}1回答
芝芝兰兰
2019-10-10
同学你好。
1、这里的输出理应是使用toString方法输出Book呢。

可以使用如下语句调用toString方法
Method method = class1.getDeclaredMethod("toString");
System.out.println(method.invoke(b1));2、另外同学的价格是int类型的吗?如果是double类型的,需要将200改为200.00呢~200会被默认解析为Integer,小数才能解析为double。
祝学习愉快~