作业 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回答
同学完成的不错,加油,祝学习愉快~
相似问题