如何填充除反射之外的JavaBean

你知道吗,无论如何我可以填充javabean,但我不想使用反射。 例如,我有这个xml模板来制作它 示例XML文件
<property name = "card" value = "cdd"/>

public class Customer {
    private String card;

     public void setCard(String card) {
          this.card = card;
     }

     public String getCard() {
     }

}
我想在Java bean上调用setCard,但我不想使用反射 因为我之前使用它而且它很慢, 还有其他选择吗?例如,Hibernate如何做到这一点? 谢谢 卡罗     
已邀请:
从XML填充JavaBean的唯一更快的方法(即比使用反射更快)是编写或生成一些绑定代码,这些代码使用从XML中提取的值(在本例中,从XML属性)调用setter。 编写绑定代码的手是最简单的方法...只要您没有太多要编写的内容。 代码可以作为源代码生成并编译。 可以使用诸如BCEL或ASM的字节码生成技术来生成代码。 可能存在一些现有的XML-to-JavaBean绑定生成器,但现有的绑定很可能使用反射而不是代码生成。 然而,目前尚不清楚这是否值得去避免反思。虽然反射相对昂贵,但XML可能要贵得多。在您决定使用更复杂的实现方法之前,我建议您进行一些分析。     
我很确定Hibernate深入使用反射API。 Groovy也有一些很好的支持,可以自动生成和使用bean getter / setter,它们最终也会在引擎盖下使用反射。 现在有一个选项,你可以硬编码你的解析器来读取xml,并在给定name属性的情况下调用相应的setter,但是你遇到了解析器变脆的问题(当你的模型改变时,如果这是有意义的话)。     
如果Bean是你的,你可以实现这样的界面:
/** Tries to set the property named key with the value given and returns true for success or false otherwise. */
boolean set(String key, Object value);
然后简单地转换为该接口并尝试使用该方法来设置属性。它肯定需要在bean中做一些工作 - 但避免反射。     

要回复问题请先登录注册