首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >动态创建成员变量和getter方法的Java帮助器类

动态创建成员变量和getter方法的Java帮助器类
EN

Stack Overflow用户
提问于 2019-06-06 06:01:33
回答 2查看 679关注 0票数 0

我正在尝试创建一个帮助器方法,它将接受成员变量(可以是任意数量的成员变量)的名称(类型为String),并自动初始化/创建成员变量以及getter方法。所以我会调用类似这样的东西:

代码语言:javascript
复制
helperClass("hello", "myName", "is", "bob")

helperClass应该看起来像这样:

代码语言:javascript
复制
public class helperClass { 
    helperClass(String ...a) {
        for (String s: a) 
            //create member variables and getter methods dynamically
}

因此,在最后,函数的调用方将具有如下内容:

代码语言:javascript
复制
public class helperClass { 
    private String hello
    private String myName
    private String is
    private String bob

    //getter methods below
    ...
}

来自Python,所以不确定这种类型的东西在Java中是否可行。

EN

回答 2

Stack Overflow用户

发布于 2019-06-06 06:41:28

是。您可以动态创建getter和setter方法。Tutorial for Java Dynamic POJO creation。但是这个方法需要您创建一个预定义的字符串,其中包含方法声明。

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

票数 0
EN

Stack Overflow用户

发布于 2019-06-06 06:44:32

我认为答案是使用IDE。它们都有"add property“函数,该函数将生成声明和适当命名的getter和setter。

如果您更喜欢手动输入属性,它们也都具有生成getter/setter函数,该函数将查看您输入的属性(找出缺少哪些getter和setter),并提供为您选择的属性批量创建适当名称的getter和setter。

为了回答你的特定问题,是的,你可以编写自己的类,它接受一系列字符串(即属性名),并将它们打印为一系列getter和setter,这是基本的字符串连接:

代码语言:javascript
复制
  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

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/56468614

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档