クラスに getter と sett がなくても、クラスの状態を変更できる他のメソッドがクラスにないわけではありません。結局のところ、彼らがクラスにいるのは、クラスがあらゆる種類のタスクを実行するために彼らを必要としているからです. そのため、他のメソッドが責任の一部としてクラスの状態を変更する可能性があります。
たとえば、クラスが銀行口座クラスである場合、おそらく口座の残高を直接設定するメソッドはありませんが、最終的にクラスの状態を内部的に変更する引き出しや預金などのトランザクションを受け入れるメソッドがある可能性があります。
したがって、これは最初から本当に悪い質問です。十分なコンテキストがないと答えが難しいからです。リフレクションはオプションかもしれませんが、セキュリティマネージャーを使用している場合、リフレクションがプライベートフィールドを変更するのを妨げる可能性があるため、これも間違った答えになる可能性があります.
ですから、質問は十分ではなく、文脈がなければ意味がありません。あなたが与えられた詳細に基づいて、おそらく質問への答えは次のような別の質問であるべきでした:
クラスのプライベート フィールドを変更する必要があるのはなぜですか? 結局のところ、彼らは理由があって非公開です。したがって、基本的にそれらを変更する必要がある場合は、座って設計を再考し、クラスに適切なパブリック インターフェイスがないかどうかを判断する必要があります。
その答えによって、インタビュアーはより多くのコンテキストを提供するようになり、適切な答えを提供できるようになります。たとえば、インタビュアーは、クラスがサードパーティ フレームワークの一部であり、そのソース コードを持っていないため、ゲッター/セッター メソッドを提供することはできませんが、いくつかの読み取り/書き込みを余儀なくされていると言うことができます。いくつかの問題を解決するための回避策として、このフレームワークの特定のオブジェクトのプライベート状態。
これで、より多くのコンテキストが得られ、次のような別の質問をすることができます: このアプリケーションでセキュリティ マネージャーを使用していますか? 彼/彼女がノーと言ったら、あなたは言うことができます、その場合、反省はオプションです.....