我有這樣的代碼:調用方法不帶任何參數在Java中
import com.eteks.sweethome3d.SweetHome3D;
import com.eteks.sweethome3d.model.Home;
public class Test extends SweetHome3D {
public static void main(String [] args) {
new Test().init(args);
}
@Override
public Home createHome() {
Home home = super.createHome();
// Modify home as you wish here
return home;
}
}
,我想通過主運行我的方法。 你知道我該怎麼做嗎?我曾嘗試過很多種方法,例如:
createHome();
super.createHome();
但它不能識別此類型。 我也試過
Test test = new Test();
test.init(args);
test.createHome();
不產生任何錯誤,不過,我想是沒有這樣做。 他們勸我:「你不應該調用test.createHome();直接」
感謝提前:)
的事情是,現在它運行我的應用程序,但是當我把這個
System.out.println("method called");
進入我的方法,它顯示兩次... ???爲什麼?
誰是「他們」?爲什麼他們建議你不要直接調用createHome()?我敢打賭,這就是爲什麼它不起作用。如果「他們」是正確的。 – chubbsondubs
我使用開源應用程序(Sweethome3d),我試圖修改「他們的」代碼。而「他們」告訴我,我不應該直接將其掛上。我也嘗試過新的Test().init(args);它調用兩次方法。 – Mitsaki
好吧,那麼你不需要調用該方法,那麼如果init()已經調用它。所以你應該做的只是簡單地覆蓋它,在createHome()中實現你的邏輯(確保調用super),並在main中做新的Test().init(args)。它會起作用。現在爲什麼它能夠工作,您需要更多地學習Java來理解方法重寫的工作原理。 – chubbsondubs