私はJavaを介して別のクラス内のプライベート静的フィールドからHashMapを抽出する方法を見つけようとしています。リフレクションを使用してJavaで静的プライベートハッシュマップを取得
例えば、
インサイドFooClassこのようになります静的フィールドがあります:
private Map entityRenderMap;
は、その構築物にそれはあります
あなたはリフレクション経由entityRenderMap内の値を取得するにはどうすればよいentityRenderMap = new HashMap();
をJava?私はこれを試してみたが、エラーを取得:私が得る
cl = RenderManager.class.getDeclaredField("entityRenderMap");
cl.setAccessible(true);
Object foo = cl.get(this.entityRenderMap);
Mod.log(cl.getName());
エラーは次のとおりです。
java.lang.IllegalArgumentException: Can not set java.util.Map field RenderManager.entityRenderMap to java.util.HashMap
at sun.reflect.UnsafeFieldAccessorImpl.throwSetIllegalArgumentException(Unknown Source)
at sun.reflect.UnsafeFieldAccessorImpl.throwSetIllegalArgumentException(Unknown Source)
at sun.reflect.UnsafeFieldAccessorImpl.ensureObj(Unknown Source)
at sun.reflect.UnsafeObjectFieldAccessorImpl.get(Unknown Source
entityRenderMapは静的ではありません。 – simpatico
フィールドは静的ですが、宣言はそれがそうではないことを示しています。 'cl.get()'に渡される 'this.entityRenderMap'の型は何ですか? –
私はちょうどそのフィールドが静的ではないことに気付きました....私は完全にその豚をねじ込みました..(長い夜)。 –