【发布时间】:2019-10-21 10:38:59
【问题描述】:
我正在尝试创建一个辅助方法,它将接受成员变量(可以是任意数量的成员变量)的名称(类型 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 中是否可行。
【问题讨论】:
-
你说的是生成源代码,还是在运行时修改JVM中的类定义?
-
Java 是静态类型的,您将如何使用这种动态创建的类型?你期望
"Hello"、"My name"、"is"或"Bob"有什么getter和成员变量? -
@azurefrog 生成成员变量,为了清楚起见,我稍微编辑了我的问题
-
@ElliottFrisch 我明白了,这就是为什么在我的问题中我说它将是
String类型,所以我们假设它们都是String类型 -
Java 是静态类型的,没有 python 风格的元编程。您可以使用字节码库来生成您的类,并且您可以使用反射来与之交互 - 但是,这不是“容易”。
标签: java getter-setter helper