我想使用一个通用的setter方法,它将Object作为参数,在setter中我将设置属性的值。例如,代替
public class Student {
private Long id;
private String name;
private int age;
public Long getId() {
return id;
}
public void setId(Long id) {
this.id = id;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public int getAge() {
return age;
}
public void setAge(int age) {
this.age = age;
}
}
我想用这个:
public class Student {
private Long id;
private String name;
private int age;
public Long getId() {
return id;
}
public String getName() {
return name;
}
public int getAge() {
return age;
}
public void setValues(Object propertyValue) {
if(propertyValue instanceof Long){
this.id = (Long) propertyValue;
}else if(propertyValue instanceof String){
this.name = (String) propertyValue;
}else if(propertyValue instanceof Integer){
this.age = (Integer) propertyValue;
}
}
}
注意:在我的POJO中,所有属性都具有唯一类型(多个属性没有重复类型)。
答案 0 :(得分:1)
首先,应始终避免施放。
第二,它比设置者慢(不需要检查instanceof)
第三,它甚至占用了更多的内存!您使用10行替换3个setter,这只需要9行:P
第四,它非常难看!但是,嘿,这只是我的意见第五,它不灵活,如果你向你的pojo添加任何东西,你必须仔细添加支票或者甚至可能还原到setter