0
我有以下結構,默認情況下有一個具有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();
...
,我現在面臨的問題是,我不知道最好的傳遞de baseDirectory屬性作爲參數的方式,因爲我需要在運行時更改此值。我正在嘗試使用反射,但目前它不工作。有沒有人想到可能的解決方法?
綜上所述,我需要改變德默認值C:/ MSG-收件箱/類似的另一件事\文件夾1 \測試
問候
爲什麼不提供一個構造'PerformanceTest(字符串)'的實例? – SomeJavaGuy
在這種情況下它是不可能的 –
好吧,聽起來像簡單的setter將工作得很好)爲什麼你需要反射在這麼簡單的操作? – Enigo