Tag: 反思

如何让Java反映出超类中的字段? 不仅仅是实际的课程

我最近改变了我的模式所以我的类inheritance自超类,问题是我的比较方法生成审计日志,使用Javareflection,现在只循环子类的字段,而不是超类,是有办法获得所有FIELDS? 或者我需要把它投入超级……? 下面是我的方法: public static String GenerateChangeLogForEntity(T old, T updated) { String text = “”; try { Field[] fields = old.getClass().getDeclaredFields(); if(fields != null) { BaseController.getLogger().info(“Z1 num fields:”+fields.length); for (Field field : fields) { if(field.isAnnotationPresent(Column.class)) { String fieldName = field.getName(); BaseController.getLogger().info(field.getName()); if(field.isAnnotationPresent(Variation.class)) { Variation v = field.getAnnotation(Variation.class); fieldName = v.friendlyName(); } field.setAccessible(true); if(field.get(old) != null […]

如何使用BeanUtils内省获取Java对象的所有属性列表?

我有一个获取POJO作为参数的方法。 现在我想以编程方式获取POJO的所有属性(因为我的代码可能不知道运行时它的所有属性是什么),并且还需要获取属性的值。 最后,我将形成POJO的字符串表示。 我可以使用ToStringBuilder ,但我希望以特定于我的要求的特定格式构建输出字符串。 是否有可能在Beanutils中这样做? 如果是,那么指向方法名称的指针是什么? 如果不是,我应该编写自己的reflection代码吗?