反思怀疑

时间:2018-05-03 16:01:13

标签: java reflection

我已经实现了一个模拟java中商店的应用程序,所有信息都放在用SQL构建的数据库中。我的问题是使用反射技术,我必须实现它才能显示表中的元素列表。 我试过这个方法(第一个答案,一个是metaData)  Most simple code to populate JTable from ResultSet 但是我被告知这不是一种反思方法。 我是在老师的指导下完成的。但是,我不知道如何在我的函数中实际调用它以及“对象”应该来自何处。 第一个函数返回标题,第二个函数提取信息并创建表格。

public class ReflectionExample {

    protected static final Logger LOGGER = Logger.getLogger(ClientDao.class.getName());
    public static ArrayList retrieveProperties(Object object) {
        ArrayList<String> ob = new ArrayList<String>();
        Class obiect = object.getClass();

        int i = 0;
        for (Field field : object.getClass().getDeclaredFields()) {
            field.setAccessible(true); // set modifier to public
            ob.add(field.getName());

            i++;
        }
        return ob;

    }

    public static JTable retrievePropertiesM(List<?> object,    Object[]lit) {
        Class obiect = object.getClass();
        Object [][] matrice = new Object[object.size()][20];
        //Object[] lit=null;

        int row = 0;
        for (Object o : object) {
            int col = 0;
            for (Field field : o.getClass().getDeclaredFields()) {
                field.setAccessible(true); // set modifier to public

                Object value;
                try {

                    value = field.get(object);
                    matrice[row][col]=value;
                    //lit[col]=field.getName();

                } catch (IllegalArgumentException e) {
                    e.printStackTrace();
                } catch (IllegalAccessException e) {
                    e.printStackTrace();
                }
                col++;
            }
            row++;
        }
    //  Object[] lit=retrieveProperties(object);
        JTable t = new JTable(matrice,lit);
        return t;


    }
}

但是,我怀疑为什么我做的第一种方式不是反思? 总而言之,我不明白反射意味着什么,反射的方法可以被数据库中的任何类型的对象调用。 一些解释或者某些地方我可以理解更好的反思?

0 个答案:

没有答案