首页 > 解决方案 > Java动态方法创建

问题描述

我有以下 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 中给出的信息动态创建。因此,对于 A 只有值适用。对于 B,需要值 x 和 y。但是对于 C,只有 x 值是强制性的,用户可以为 y 提供值,因此有两种不同的方法。

问:在 Java 中是否可以在读取 JSON 后在编译时生成方法,例如如果参数是强制性的,我将创建具有那么多参数的方法。如果该值不适用,那么我将创建不带任何参数的方法。

标签: javagroovymetaprogrammingcglib

解决方案


是的,它可以使用Reflection in Java或者您可以使用javaassitcglib


推荐阅读