Java动态方法创建
我有以下JSON格式的信息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
[
{
"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也希望更改方法参数。这就是我写反思的原因。