课题打卡,请老师检查

来源:2-9 自由编程

慕前端8369922

2020-08-17 09:19:10

package practice3;

public class Book {
    private int no;
    private String name;
    public Float price;

    public Book() {
    }

    @Override
    public String toString() {
        return "Book{" +
                "no=" + no +
                ", name='" + name + '\'' +
                ", price=" + price +
                '}';
    }

    public int getNo() {
        return no;
    }

    public void setNo(int no) {
        this.no = no;
    }

    public String getName() {
        return name;
    }

    public void setName(String name) {
        this.name = name;
    }

    public Float getPrice() {
        return price;
    }

    public void setPrice(Float price) {
        this.price = price;
    }

    public Book(int no, String name, Float price) {
        this.no = no;
        this.name = name;
        this.price = price;
    }
}
package practice3;

import java.lang.reflect.Constructor;
import java.lang.reflect.Field;
import java.lang.reflect.InvocationTargetException;
import java.lang.reflect.Method;

public class Test {
    public static void main(String[] args) {
        try {
            Class bookClass = Class.forName("practice3.Book");
            Constructor constructor = bookClass.getConstructor(int.class, String.class, Float.class);
            Book book = (Book) constructor.newInstance(1, "How to Sell an apple", 34f);
            Field[] fileds = bookClass.getDeclaredFields();
            for( Field field: fileds){

                if( field.getModifiers() == 1 ){
                    Object val = field.get(book);
                    System.out.println(field.getName() + ": " + val);
                }else if(field.getModifiers() == 2 ){
                   String methodName = "get" + field.getName().substring(0,1).toUpperCase()
                           + field.getName().substring(1);
                    Method method = bookClass.getMethod(methodName);
                    Object val = method.invoke(book);
                    System.out.println(field.getName() + ": " + val);
                }
            }
        } catch (ClassNotFoundException | NoSuchMethodException | InstantiationException | IllegalAccessException | InvocationTargetException e) {
            e.printStackTrace();
        }
    }
}

谢谢老师检查了 

写回答

1回答

好帮手慕小尤

2020-08-17

同学你好,同学的代码完成的不错哦,很棒,继续加油!

祝学习愉快!

0

0 学习 · 16556 问题

查看课程