私はScalaアプリケーションで使用している自動生成されたJavaクラスを持っています。私は、このJavaクラスの静的メンバにアクセスしたいのですが、このScalaからJava静的メンバーにリフレクションでアクセスする方法を教えてください。
val model = Class
.forName("Model123123")
.newInstance()
.asInstanceOf[GenModel]
のようなインスタンスを作成することができます
public class Model123123 extends GenModel {
public int nclasses() { return 4; }
// Names of columns used by model.
public static final String[] NAMES = NamesHolder_Model123123.VALUES;
:ような何か。私は直接このようにすることができます:
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の反射についてトンを知らないので、私は少し迷ってしまいました。私は同じ親クラスをサブクラス化する多くのクラスを持ち、実行時にクラスを動的に変更したいので、リフレクションでこれを実行しようとしています。
おかげ
ありがとう、これは完全に機能しました! getDeclaredFieldを認識していなかった – benlaird