Java Helper类可动态创建成员变量和getter方法

时间:2019-06-05 22:01:32

标签: java getter-setter helper

我正在尝试创建一个辅助方法,该方法将采用成员变量的名称(类型String)(可以是任意数量的成员变量),并自动初始化/创建成员变量以及吸气剂方法。所以我会这样称呼:

helperClass("hello", "myName", "is", "bob")

helperClass看起来像这样:

public class helperClass { 
    helperClass(String ...a) {
        for (String s: a) 
            //create member variables and getter methods dynamically
}

因此,最后,该函数的调用者将具有以下内容:

public class helperClass { 
    private String hello
    private String myName
    private String is
    private String bob

    //getter methods below
    ...
}

来自Python,因此不确定此类内容是否可以在Java中使用。

2 个答案:

答案 0 :(得分:0)

是的。您可以动态创建getter和setter方法。 Tutorial for Java Dynamic POJO creation。但是此方法将涉及您创建一个包含方法声明的预定义字符串。

例如: String s =“ public void doSonething(String ... args){//函数体}”。 然后,您可以在运行时将此字符串转换为函数。根据您的需要,您可以定义一个包含所需方法声明的自定义字符串。请参阅上面附带的教程链接中的一些示例。

答案 1 :(得分:0)

我认为答案是使用IDE。它们都具有“ add property”功能,这些功能将生成声明以及适当命名的getter和setter。

如果您希望手动输入属性,它们还都具有生成getter / setter函数,这些函数将查看您输入的属性(找出缺少的getter和setter),并提供在其中创建适当命名的getter和setter的功能。批量显示所选的内容。

要回答您的特定问题,是的,您可以编写自己的类,该类采用字符串列表(即属性名称)并将其打印为一系列的getter和setter,这是基本的字符串连接:


  private String generateGetter(String propName) {
     return String.format("   public String get%s()\n    return this.%s;\n  }", StringUtils.capitalize(propName), propName);
  }

要将propName的首字母转换为大写(getter和setter方法的约定,您可以自己执行或使用apache's string utils