实用代码-获取某一个对象中的信息

今天同事遇到了一个问题,tomcat中的某一个对象的属性打印后,发现缺失了一个,不确定是什么原因。
我怀疑是war的问题,于是编写了这个获取java对象信息的小代码。
最后帮忙解决问题了,原来是tomcat的代码路径不是webapps,被大领导改了地方了,所以我们将war包上传到webapps白传,因为没用到,笑cry了

    public static void main(String[] args) {
        WebPaymentSettleRequest request = new WebPaymentSettleRequest();
        try {
            test(request);
        } catch (Exception e) {
            e.printStackTrace();
        }
    }

    private static void test(WebPaymentSettleRequest request) throws Exception {
        System.out.println("反射获取对象信息开始……");
        Class cls = request.getClass();
        Map fieldMap = new HashMap();
        // 获取类的路径
        File classFile = new File(cls.getResource("").getPath());
        System.out.println("文件信息:" + classFile);
        //得到所有属性
        Field[] fields = cls.getDeclaredFields();
        System.out.println("属性信息:" + Arrays.toString(fields));
        for (int i = 0; i < fields.length; i++) {//遍历
            Field field = fields[i];
            field.setAccessible(true);
            String name = field.getName();
            Object value = field.get(request);
            fieldMap.put(name, value);
        }
        System.out.println("对象中的数据:" + fieldMap);
        Method toStringMethod = cls.getMethod("toString", null);
        Object result = toStringMethod.invoke(request, null);
        System.out.println("toString方法执行结果:" + result);
        System.out.println("反射获取对象信息结束……");
    }
posted @ 2020-04-28 13:44  season-qd  阅读(199)  评论(0编辑  收藏  举报