作业 3-7

来源:3-7 自由编程

jia_蛙

2020-01-16 20:04:54

package com.imooc.reflect.jdbc;
/**
 * @author 25677
 *
 */
public class Book {
	private String bookId;
	private String bookName;
	public Double bookPrice;
	
	public Book() {
		super();
	}

	public Book(String bookId, String bookName, Double bookPrice) {
		super();
		this.bookId = bookId;
		this.bookName = bookName;
		this.bookPrice = bookPrice;
	}

	@Override
	public String toString() {
		return "Book [bookId=" + bookId + ", bookName=" + bookName + ", bookPrice=" + bookPrice + "]";
	};
	
	
}
package com.imooc.reflect.test;

import java.lang.reflect.Field;

import org.junit.Test;

import com.imooc.reflect.jdbc.Book;

public class GoodsFieldTest {
	@Test
	/**
	 * - 通过Field获得图书名称属性,为图书名称设置值并输出
	 */
	 public void demo1()throws Exception {
		//1.获得类对应的字节码文件的对象
		Class class1 = Class.forName("com.imooc.reflect.jdbc.Book");
		//2.获取指定的私有属性-bookName
		Field field = class1.getDeclaredField("bookName");
		//3.设置Filed私有变量可以访问
		field.setAccessible(true);
		//4.设置值、输出值
		//4.1首先需要生成当前对象的实例
		Book b = (Book)class1.newInstance();
		//4.2设置值
		field.set(b, "格林童话");
		//4.3获取值
		System.out.println(field.get(b));
	}
	
	@Test
	/**
	 * - 通过Field获得图书的价格属性,为图书价格设置值并输出
	 */
	public void demo2() throws Exception{
		//1.获取类对应的字节码文件对象
		Class class1 = Class.forName("com.imooc.reflect.jdbc.Book");
		//2.获取指定的公有属性
		Field field = class1.getField("bookPrice");
		//3.生成类对象的实例
		Book b = (Book)class1.newInstance();
		//4.设置值
		field.set(b, 99.9D);
		//5.输出值
		System.out.println("价格: " + field.get(b));
	}
}
麻烦老师看一下有没有需要修改的地方


写回答

1回答

好帮手慕小班

2020-01-17

同学完成的不错,加油,祝学习愉快~

0
hia_蛙
h 谢谢老师!
h020-01-17
共1条回复

0 学习 · 8016 问题

查看课程

相似问题