Java 使用大量的getter和setter有效地填充POJO
我有一个POJO,它代表我的应用程序的所有属性。它包含大量字符串int和boolean(类变量及其getter/setter) 问题是,每次添加新属性时,我都必须添加变量、getter、setter、通过加载属性文件来设置它的代码以及使用getter的代码 我的想法是将其重构为一个Java 使用大量的getter和setter有效地填充POJO,java,refactoring,properties,getter-setter,Java,Refactoring,Properties,Getter Setter,我有一个POJO,它代表我的应用程序的所有属性。它包含大量字符串int和boolean(类变量及其getter/setter) 问题是,每次添加新属性时,我都必须添加变量、getter、setter、通过加载属性文件来设置它的代码以及使用getter的代码 我的想法是将其重构为一个getString(stringstringtoget),getInt和getBoolean方法,该方法从3个hashmaps中提取。这样做的问题是,我不能再使用EL来获取属性,例如${properties.telep
getString(stringstringtoget)
,getInt
和getBoolean
方法,该方法从3个hashmaps中提取。这样做的问题是,我不能再使用EL来获取属性,例如${properties.telephoneNumber}
有人有其他想法吗?如果你有一个类,你绝对确定每个变量都有get/set,我只会公开这些变量。通常,不这样做的原因是,如果可能的话,您需要更改实现或更改变量名或类似的内容。如果你知道这不会发生,我会继续,改变对公众的访问 另外,如果您使用的是Eclipse(可能是其他IDE,但我不熟悉),它可以自动为您创建get/set方法,所以这不应该是一个麻烦
我不会使用你建议的解决方案。它将消除自动完成的便利性,这在有很多方法/变量时尤其需要。使用IDE生成所有这些setter和getter 自JSF 2.0以来,您可以使用EL中的参数调用方法:
#{properties.getString('telephoneNumber')}
您应该考虑重构您的POJO,可能创建具有逻辑分组属性的较小POJO。您可能还希望了解在运行时为您生成getter/setter的方法,以保持代码更流畅。JavaBeans需要getter和setter。Pojo没有。我想你需要一个JavaBean来表示“EL”;)您应该能够使用IDE生成getter/setter,因此除了使代码混乱之外,它们不需要太多努力。我建议您不要这样做。它使您的代码非常脆弱。如果类是包私有的,那么您应该只公开每个公共成员变量,即使它是有争议的seconds@nsfyn55另一个问题是添加代码来调用setter并加载属性。另一种方法只是循环所有属性并将它们添加到hashmap中,因此每个setter不需要单独的代码。我喜欢你的答案。将JSF添加到项目中需要做很多工作吗?这取决于您的项目以及该项目已经完成的程度。将JSF添加到一个小的或新的项目中根本不需要努力。首先,请看一看。您能否提供一个流行IDE中的示例,使其更具建设性?