別のクラスからプライベートオブジェクトにアクセスするための直接的または間接的な方法はありますか?
まあ、反射は本当にこれに対するあなたの唯一の希望です。これは、可視性修飾子をあまり気にせずにオブジェクトのフィールドを検査できる唯一の方法です。
Entity entity = new Entity();
for(Field f : entity.getClass().getDeclaredFields()) {
try {
f.setAccessible(true);
System.out.println(f.get(entity));
} catch(IllegalAccessException e) {
e.printStackTrace();
}
}
ただし、フィールドのアクセシビリティをリセットする場合は、強く警告したいと思います。
高度に並行した環境で実行していて、完了した直後にアクセシビリティを無効にすると、別のスレッドで読み込もうとしているときに、あるスレッドでアクセシビリティが削除される場合があります。これは、巨大で紛らわしい混乱につながります。
その時点で、あなたは事実持つ可視性修飾子は議論の余地になり、あなただけの代わりにパートと、小包のゲッターを使用したい(またはフィールドがあることだろうpublic
についての多くの感じは奇妙になりました)。
この記事はインターネットから収集されたものであり、転載の際にはソースを示してください。
侵害の場合は、連絡してください[email protected]
コメントを追加