java - 用于动态创建成员变量和 getter 方法的 Java 助手类
问题描述
我正在尝试创建一个辅助方法,它将接受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。
推荐阅读
- canvas - 如何从 AntV g2plot 旋转 90 度桑基图
- go - Cobra 中的命名位置参数
- r - 在构建 rocker/tidyverse docker 映像期间安装软件包
- angular - 从 GoogleColab 转换的 TensorFlowJS 模型在预测结果中具有不同的概率值(使用 Angular 和 tfjs)
- r - 修复树状图的美学
- python - 如何在点击时更改 Tkinter 按钮图像?
- python - 在 python 中查看 ODE 图的特定时间点
- jupyter-notebook - 如何使用在 Jupyter Widgets-Date picker 中输入的信息?
- database - 如何在 AS400 系统上调试表中的特定记录
- split - 从函数内的数据框中删除因子级别