Java助手类动态创建成员变量和getter方法

内容来源于 Stack Overflow,并遵循CC BY-SA 3.0许可协议进行翻译与使用

  • 回答 (2)
  • 关注 (0)
  • 查看 (282)

我正在尝试创建一个辅助方法,它将接收String成员变量的名称(类型)(可以是任意数量的成员变量)并自动初始化/创建成员变量以及getter方法。所以我会打电话给:

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中使用。

提问于
用户回答回答于

我认为答案是使用IDE。它们都具有“添加属性”功能,这些功能将生成声明并适当命名为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的字符串utils

用户回答回答于

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

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

扫码关注云+社区

领取腾讯云代金券