Java动态方法创建

Java动态方法创建,java,groovy,metaprogramming,cglib,Java,Groovy,Metaprogramming,Cglib,我有以下JSON格式的信息 [ { "name": "A", "value": { "isValueApplicable": "true" } }, { "name": "B", "parameters": [ { "name": "x", "isMandatory": "true" }, { "name": "y", "isMan

我有以下JSON格式的信息

 [
  {
    "name": "A",
    "value": {
      "isValueApplicable": "true"
    }
  },
  {
    "name": "B",
    "parameters": [
      {
        "name": "x",
        "isMandatory": "true"
      },
      {
        "name": "y",
        "isMandatory": "true"
      }
    ]
  },
  {
    "name": "C",
    "parameters": [
      {
        "name": "x",
        "isMandatory": "true"
      },
      {
        "name": "y",
        "isMandatory": "false"
      }
    ]
  }
]
我想要的是,使用以下方法创建一个类:

public Structure getA (String value) {
}

public Structure getB (String xValue, String yValue) {
}

public Structure getC (String xValue) {
}

public Structure getC (String xValue, String yValue) {
}
这里的重要部分是,这些方法应该基于JSON中给出的信息动态创建。因此,对于一个唯一的值是适用的。对于B,值x和y都是必需的。但对于C,只有x值是必需的,用户可以为y提供值,因此使用了两种不同的方法


在java中,是否可以在读取JSON后在编译时生成方法,比如如果参数是必需的,我将使用这些参数创建方法。如果该值不适用,那么我将创建不带任何参数的方法。

是,可以使用Java中的
反射来完成,或者您可以使用
javaassit
cglib
是,您可以动态生成Java字节码。CGLib()是实现这一点的一个选项

或者,您可以使用类似Jackson的东西从Json生成Java源代码,并对其进行编译

我相信还有更多的方法,但是是的,这当然是可能的


当然,您显示的Json已损坏,因此只会产生一个解析器错误。

您的Json似乎不是正确的Json。请提供好的json。是的,这是可能的。反射询问类及其成员,您可以更改字段,但不能创建新字段。但suhashd也希望更改方法参数。这就是我写反思的原因。