在服务器上我有这样的东西
public class Instrument {
private String myPropOne;
private String myPropTwo;
private String myPropThree;
public String getMyPropOne() {
return myPropOne;
}
public void setMyPropOne(String myPropOne) {
this.myPropOne = myPropOne;
}
public String getMyPropTwo() {
return myPropTwo;
}
public void setMyPropTwo(String myPropTwo) {
this.myPropTwo = myPropTwo;
}
public String getMyPropThree() {
return myPropThree;
}
public void setMyPropThree(String myPropThree) {
this.myPropThree = myPropThree;
}
}
在浏览器端将发送 map
{ my_prop_one : 'val1', my_prop_two : 'val2', my_prop_three : 'val3'}
一种方法是创建定义 toMap() 方法并将所有属性一一放置,并且当它来自 UI 端(例如 fromMap())时执行相同的操作
现在的问题是我想写一些通用函数
set('my_prop_one', 'val2')
以便它查找实例并设置正确的值,我将扩展此类以创建更多具有不同属性的乐器类型 我可以使用注释来做到这一点
public class Instrument {
private String myPropOne;
private String myPropTwo;
private String myPropThree;
@KeyMap(value="my_prop_one")
public String getMyPropOne() {
return myPropOne;
}
@KeyMap(value="my_prop_one")
public void setMyPropOne(String myPropOne) {
this.myPropOne = myPropOne;
}
@KeyMap(value="my_prop_two")
public String getMyPropTwo() {
return myPropTwo;
}
@KeyMap(value="my_prop_two")
public void setMyPropTwo(String myPropTwo) {
this.myPropTwo = myPropTwo;
}
@KeyMap(value="my_prop_three")
public String getMyPropThree() {
return myPropThree;
}
@KeyMap(value="my_prop_three")
public void setMyPropThree(String myPropThree) {
this.myPropThree = myPropThree;
}
}
我必须写两次注释。有没有更好的方法来做到这一点?像我在属性上添加注释和 getter/setter 以某种方式链接并可用于提取属性之类的事情,某种创建 hashMap 的方法?
JsonUtil 我已经在使用 给我这个输出
{ myPropOne : 'val1', myPropTwo : 'val2', myPropThree : 'val3'}
但是又是一个属性的 setter/getter 方法吗?怎么做? 编辑3:
@JsonAnyGetter & @JsonAnySetter
如示例 here 中所述但它们只适用于 map 而不是真实的属性,这是我的要求。
最佳答案
你试过吗https://github.com/flori/json-utils ? 它包含您所要求的功能主义者。
关于java - HashMap 到 Java 类对象,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23524178/