Seam 2.2 を使用しています。Reflections を使用して Seam コンポーネントからプライベート フィールドを取得したいと考えています。ので、私は持っています:
LocalizationEditActionRoot localizationEditActionRoot = (LocalizationEditActionRoot) Component
.getInstance(LocalizationEditActionRoot.class, true);
Class currentClass = localizationEditActionRoot.getClass();
WebDavMockClient mockClient = new WebDavMockClient();
Field f = currentClass.getDeclaredField("davClient");
f.setAccessible(true);
f.set(localizationEditActionRoot, mockClient);
というフィールドを取得したい場合davClient(WebDavClient)
、NoSuchFieldException が発生します。フィールドはもちろん注入されます。私がこのようなことをしようとすると:
Class currentClass = Class.forName("fr.isiom.bpms.admin.session.ext.action.root.LocalizationEditActionRoot");
WebDavMockClient mockClient = new WebDavMockClient();
Field f = currentClass.getDeclaredField("davClient");
f.setAccessible(true);
f.set(localizationEditActionRoot, mockClient);
フィールドを取得しましたdavClient
が、値は変更されません。彼は依然として WebDavMockClient ではなく WebDavClient のインスタンスです。そのフィールド値を変更するにはどうすればよいですか?