老师看看代码这样写可以吗?

来源:3-7 自由编程

慕无忌1192597

2020-01-07 15:51:51


package pers.uyz.reflect;

import java.lang.reflect.Field;

import org.junit.jupiter.api.Test;

public class BookTest {
	
	@Test
	public void demo() throws Exception {
		// 获取Class
		Class class1 = Class.forName("pers.uyz.reflect.Book");
		// 获取私有属性
		Field field1 = class1.getDeclaredField("id");
		Field field2 = class1.getDeclaredField("name");
		// 获取公有属性
		Field field3 = class1.getField("price");
		// 操作属性
		Book book1 = (Book)class1.getDeclaredConstructor().newInstance();
		// 设置可访问权限
		field1.setAccessible(true);
		field1.set(book1, "b01");
		field2.setAccessible(true);
		field2.set(book1, "十万个为什么");
		field3.set(book1, 100.00);
		
		Object obj1 = field1.get(book1);
		Object obj2 = field2.get(book1);
		Object obj3 = field3.get(book1);
		System.out.println(book1);
		
	}
}


package pers.uyz.reflect;

public class Book {
	
	public Book() {
		
	}
	
	public Book(String id, String name, double price) {
		this.id = id;
		this.name = name;
		this.price = price;
	}
	
	private String id;
	private String name;
	public double price;
	
	public String toString() {
		return "图书编号:" + id + ",图书名称:" + name + ",图书价格:" + price;
	}
}


写回答

1回答

好帮手慕酷酷

2020-01-07

同学你好,代码完成的不错!没有问题的,继续努力!

如果我的回答解决了你的疑惑,请采纳!祝学习愉快!

0

0 学习 · 8016 问题

查看课程