java - HashMap 到 Java 类对象

标签 java reflection annotations hashmap jackson

在服务器上我有这样的东西

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/

相关文章:

Java 反射没有按预期工作

c# - 访问属性的最佳方式

java - Spring实例化了bean但无法使用

Java 到 XML 的 Castor 映射

c# - 在 iOS 上的 C# IL2CPP 中通过反射调用泛型方法

java - Android Parceler库: Unable to find generated Parcelable class

c++ - C++ 中的最小反射

ios - 在 uiwebview 中编辑文本

java - 重新运行线程

java - 列出不同类型的数组值并将它们相加