交作业交作业交作业

来源: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呢。

http://img.mukewang.com/climg/5d9ee5760918dd3004790156.jpg

可以使用如下语句调用toString方法

Method method = class1.getDeclaredMethod("toString");
System.out.println(method.invoke(b1));


2、另外同学的价格是int类型的吗?如果是double类型的,需要将200改为200.00呢~200会被默认解析为Integer,小数才能解析为double。


祝学习愉快~


0

0 学习 · 8016 问题

查看课程