课题打卡-请老师检查

来源:2-9 自由编程

慕神0457710

2020-09-13 02:43:49

public class Book {
    private String id;
    private String name;
    public  float price;

    public String getId() {
        return id;
    }

    public void setId(String id) {
        this.id = id;
    }

    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() {

    }

    public Book(String id, String name, float price) {
        this.id = id;
        this.name = name;
        this.price = price;
    }

    @Override
    public String toString() {
        return "Book{" +
                "id='" + id + '\'' +
                ", name='" + name + '\'' +
                ", price=" + price +
                '}';
    }
}
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("Book");
            Constructor con = bookClass.getConstructor(new Class[]{String.class,String.class,float.class});
            Book book = (Book)con.newInstance(new Object[]{"s001","天线宝宝",100f});
            Field[] fields = bookClass.getDeclaredFields();
            for (Field fie : fields) {
                if (fie.getModifiers() == 1) {
                    Object var = fie.get(book);
                    System.out.println(fie.getName()+":"+var);
                } else if((fie.getModifiers() == 2)) {
                    String methodName = "get"+fie.getName().substring(0,1).toUpperCase()+fie.getName().substring(1);
                    System.out.println(fie.getName()+":"+bookClass.getMethod(methodName).invoke(book));
                }
            }
        } 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();
        }
    }

}


写回答

1回答

好帮手慕小班

2020-09-13

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

继续加油  祝学习愉快~

0

0 学习 · 16556 问题

查看课程