课题打卡~请老师检查
来源:2-9 自由编程
慕仙4530950
2020-07-29 16:24:39
public class getDeclaredBook {
public static void main(String[] args) {
try {
Class bookClass = Class.forName("com.imooc.reflect.entity.Book");
Constructor constructor = bookClass.getConstructor(new Class[]{
Integer.class, String.class, Float.class
});
Book book = (Book) constructor.newInstance(new Object[]{
1001, "计算机编程语言", 89f
});
Field[] fields = bookClass.getDeclaredFields();
for (Field field : fields) {
//System.out.println(field.getName());
if (field.getModifiers() == 1) { //public修饰
Object val = field.get(book);
System.out.println(field.getName() + ":" + val);
} else if (field.getModifiers() == 2) { //private修饰
String methodName = "get" + field.getName().substring(0, 1).toUpperCase()
+ field.getName().substring(1);
Method method = bookClass.getMethod(methodName);
Object ret = method.invoke(book);
System.out.println(field.getName() + ":" + ret);
}
}
} catch (ClassNotFoundException e) {
e.printStackTrace();
} catch (NoSuchMethodException e) {
e.printStackTrace();
} catch (InstantiationException e) {
e.printStackTrace();
} catch (IllegalAccessException e) {
e.printStackTrace();
} catch (InvocationTargetException e) {
e.printStackTrace();
}
}
}public class Book {
private Integer bookId;
private String bookName;
public Float price;
public Book(){
}
public Book(Integer bookId, String bookName, Float price) {
this.bookId = bookId;
this.bookName = bookName;
this.price = price;
}
public Integer getBookId() {
return bookId;
}
public void setBookId(Integer bookId) {
this.bookId = bookId;
}
public String getBookName() {
return bookName;
}
public void setBookName(String bookName) {
this.bookName = bookName;
}
public Float getPrice() {
return price;
}
public void setPrice(Float price) {
this.price = price;
}
@Override
public String toString() {
return "Book{" +
"bookId=" + bookId +
", bookName='" + bookName + '\'' +
", price=" + price +
'}';
}
}1回答
好帮手慕小脸
2020-07-29
同学你好,同学的代码完成的不错哦,很棒,继续加油!!
如果我的回答解决了你的问题,请采纳,祝学习愉快.
相似问题