Tag: 内省

如何告诉java.beans.Introspector忽略getter方法?

我有一个字段,它是两个值的组合。 这是从JSON序列化并且运行良好的字段。 public String getRevisions() { return revisions; } public void setRevisions(String revisions) { this.revisions = revisions; } 我添加了两个辅助方法来检索单独的值,但我不希望它们序列化为JSON。 public String getCurrentRevision() { … return first revision … } public String getPreviousRevision() { … return second revision … } 有没有办法告诉java.beans.Introspector在通过getBeanInfo()构建BeanInfo时忽略这些额外的getter? 注释很可爱,我真的希望避免为它手动创建我自己的BeanInfo 。

用于合并java bean的工具

使用内省合并两个简单,扁平的Java bean很容易: BeanInfo info = Introspector.getBeanInfo( ContactBean.class ); PropertyDescriptor pDescArr[] = info.getPropertyDescriptors(); for(PropertyDescriptor pDesc : pDescArr){ //copy properties and check for conflicts here } 但是,当属性包含嵌套bean或集合时,它会变得更复杂一些。 是否有一个智能工具可以处理复杂bean的深度合并? 关于我如何使合并工作的一些更具体的细节: 给定源bean的集合和空目标bean,除非存在冲突,否则应将简单属性从源复制到目标。 如果存在冲突,则该字段应为空。 如果属性属于集合类型,则应合并源bean的值(不包括重复项),并将其复制到目标属性。 这些规则应递归应用于bean本身的属性。

Java包内省

如何获得包中的所有类?

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

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

Java:如何查找是否从基类重写了一个方法?

如何查明子类是否覆盖了某个方法? 例如, public class Test { static public class B { public String m() {return “From B”;}; } static public class B1 extends B { } static public class B2 extends B { public String m() {return “from B2”;}; } /** * @param args * @throws FileNotFoundException */ public static void main(String[] args) { B […]