【发布时间】:2016-04-28 15:26:38
【问题描述】:
我有一个在 Scala 应用程序中使用的自动生成的 Java 类。比如:
public class Model123123 extends GenModel {
public int nclasses() { return 4; }
// Names of columns used by model.
public static final String[] NAMES = NamesHolder_Model123123.VALUES;
我可以创建这样的实例
val model = Class
.forName("Model123123")
.newInstance()
.asInstanceOf[GenModel]
我想访问这个 Java 类的静态成员。我可以直接做,像这样:
Model123123.NAMES
但不明白如何通过反射来做到这一点。我试过了:
scala> Class.forName("Model123123").NAMES
<console>:10: error: value NAMES is not a member of Class[?0]
Class.forName(model_name).NAMES
和
scala> model.getClass.NAMES
<console>:11: error: value NAMES is not a member of Class[?0]
model.getClass.NAMES
我不太了解 Java 或 scala 反射,所以我有点迷茫。我试图通过反射来做到这一点,因为我将有许多类继承同一个父类,并且我想在运行时动态更改类。
谢谢
【问题讨论】:
标签: java scala reflection h2o