我有一個相當標準的創建模式,其中一類暴露的靜態方法,返回的自身情況,比如:爲什麼在Java中調用靜態方法沒有被創建?
public class MyClass {
private MyClass(/*parameter list*/) {
// internal construction
}
public static MyClass GetMyClass(/*parameter list*/) {
return new MyClass(/*parameter list*/);
}
}
...
//this line wont break in the debugger and seemingly never gets called - why?
MyClass inst = MyClass.GetMyClass(/*parameter list*/);
然而,inst
始終爲空。我不能斷開調用靜態方法的行,調試器會忽略它 - 發生了什麼?
編輯:謝謝你的建議。
- 所有項目已被清理和重建(manully在NetBeans)
- 我加入的靜態方法休息,沒有它不打。
- 是的,上面的代碼被調用(最終)在一個Swing'FrameView'的構造函數中,雖然它肯定不應該在我調用它的位置,應該嗎?
- 沒有異常吞嚥隨時隨地
側面說明,不是缺少class
聲明(這是一個錯字)其他爲什麼這不是有效的Java?爲什麼這個顯然是 C#代碼?說明會比downvotes :)
編輯II更有幫助:該Params
只是應該指出的參數的整個負載 - 對不起,如果這混淆任何人,我明明知道參數有類型聲明等,代碼上述的目的是作爲一個快速的簡寫,而不是一個完整的和(複雜)的實際樣品...
現貨C#程序員:)請嘗試發佈有效的,編譯Java(這不是)。 – skaffman
那個調用'GetMyClass'的行在哪裏?在一個構造函數中,靜態/最終的init塊可能在另一個類中?還值得注意的是,發佈的代碼非常C#,在大多數地方無法使用Java。 –
您提供的代碼不是Java代碼,所以它很難幫助您... – delfuego