Java动态函数调用

时间:2015-08-18 19:39:24

标签: java reflection dynamic-function

我有一个班级

class JsonMap extends HashMap<String, Object> {}

我初始化了一个像这样的对象

JsonMap jm = new JsonMap();

我正在像这样插入数据

jm.put("id", 4);
jm.put("message", "Hello");

但我想做一些像这样容易的事情,效果相同。

jm.setId(4);
jm.setMessage("Hello");

这是否可以,而不必在setId类中编写方法setMessageJsonMap

功能名称是动态的:第一部分始终是&#39;设置&#39;第二部分是动态价值。这将成为HashMap内的关键。

有人可以告诉我如何实现这个目标吗?

3 个答案:

答案 0 :(得分:1)

您正在寻找的是该语言不支持此类功能,因此至少您可以停止寻找内置语言功能。您可能想要查看的替代选项:

  • 专业JSON序列化程序(如Jackson
  • JSONtoPOJO转换器(其中许多转换器可用online

答案 1 :(得分:0)

您需要编写方法来为您执行此操作

public void setId(int id) {
    jm.put("id", id);
}

public void setMessage(String message) {
    jm.put("message", message);
}

答案 2 :(得分:0)

Java是一种强类型语言,而不是脚本语言,所以没有,不必在{{1}中编写方法setIdsetMessage }。class。