私は以下の構造を持っています。ここでは、デフォルトでbaseDirectory属性を持つ抽象クラスがあります。クラス内で、実行時に属性の値を変更する方法はありますか?
public abstract class PerformanceTest {
/**
* Base directory.
*/
private String baseDirectory = "C:/msg-inbox/";
...
一方抽象クラスから継承するクラスがあります。
public class MessagePerformanceTest extends PerformanceTest {
/**
* Constructor.
*/
public MessagePerformanceTest() {
}
...
最後に、私はこのようなメインクラスがあります。
public class MessagesMain {
public static void main(String[] args) {
Field field = PerformanceTest.class.getDeclaredField("baseDirectory");
field.setAccessible(true);
field.set(null,args[0]);
MessagePerformanceTest messagePerformanceTest = new MessagePerformanceTest();
messagePerformanceTest.createMessages();
を...
私が直面しています問題は、私は最善を知らないということです実行時にこの値を変更する必要があるので、引数としてbaseDirectory属性を渡す方法です。私は反射を使用しようとしていますが、その時点で動作していません。可能性のある回避策を考えてみましょうか?
は、私は、デフォルト値のCデ変更する必要があります要約すると:/ MSG-受信トレイを/類似した別のものに\ folder1のにテスト
よろしく
のインスタンスは、なぜ ''コンストラクタPerformanceTest(String)を提供しない、従ってMessagePerformanceTestのインスタンスであり、? – SomeJavaGuy
この状況では不可能 –
まあ、シンプルなセッターのような音はうまくいくでしょう)なぜ簡単な操作のために反射が必要なのですか? – Enigo