有时当我有一些具有大量属性的对象(例如30-40)时,编写getter和setter方法真的很烦人,所以在javascript中我会这样做:
function SomeObject( properties )
{
// Iterate through the properties of the object, and make sure
// that it's properly scoped.
for ( var i in properties )
{
(function(){
// Create a new getter for the property
this[ "get" + i ] = function()
{
return properties[i];
};
// Create a new setter for the property
this[ "set" + i ] = function(val)
{
properties[i] = val;
};
})(); }
}
所以我只是想知道是否有可能在JAVA中做这样的事情?
答案 0 :(得分:3)
代码生成注释可以在Java中执行此类操作。您可能需要查看Project Lombok。
答案 1 :(得分:1)
在Eclipse中:
Rightclick - >来源 - >生成Getters和Setter
还有其他很好的生成器,例如,构造函数,hashCode / Equals。
所有常见的IDE都具有这样的功能,可以节省很多的时间。
答案 2 :(得分:1)
假设我给你一个30-40个吸气/安装者的课程。使用时你会有什么感受? 我不认为在一个班级中拥有30-40个getter / setter是个好主意。 而是通过子类化属性来打破/分配类
您从javascript提供的示例是一个非常好的示例。关于如果我们在一个类中有这么多属性我们应该如何访问。在javascript中,您可以像地图一样使用对象。
如果我有30/40吸气剂设定器的要求,我会应用相同的想法。
即我要使用java.util.Properties
或制作我的自定义类
//Only if you have 30/40 properties
class MyClass {
private Map<String, Object> data = new ConcurrentHashMap<String,Object>();
public void set(String fieldName, Object value) {
data.put(fieldName, value);
}
public Object get(String fieldName) {
return data.get(fieldName);
}
}
答案 3 :(得分:0)
在Eclipse中,您可以使用“Source&gt; Getter和Setter”功能,并自动将您的代码添加到您想要的所有setter和getter中!
答案 4 :(得分:0)
也许尝试提升和Spring Roo一样:
@RooJavaBean
public calss SimpleClass {
private Attr1 attr1;
private Attr2 attr2;
}