2013-05-12 42 views
1

沒有通過攻擊和小姐的攻擊地點。得到一個輸出結果是不正確的。 Iam使用網格類的位置接口用於船級並且沒有船級。具有隻是實現了船舶類,並沒有船class.How調試在正確的輸出Java程序在下面的一段代碼中傳遞NullpointerException

+0

Javascript代碼去除出現這個問題與Javascript編程語言無關。代碼格式更好。 – 2013-05-12 16:01:29

+1

這幾乎肯定是因爲'grid [i] [j] == null'。 – 2013-05-12 16:02:23

+0

您的NoShip類看起來有點凌亂,例如attack()將命中設置爲true,但然後返回isShip,這是false。如果你也打電話給wasHit(),而沒有設置「hit」到任何東西,那麼它會拋出空指針,因爲你沒有設置hit爲任何值 – Rogue 2013-05-12 16:03:29

回答

6

注意hit不是booleanBoolean對象,從來沒有初始化的位置接口

蔭,所以它是null。在autounboxing,它不能被轉換爲boolean,所以NullPointerException被拋出。

詳情請參閱here

+0

謝謝你讓我知道。我已經初始化布爾值爲真實的船類和假的沒有船級,但在輸出,而不是顯示X的命中和0錯過它顯示X的所有原始船舶的地方。 – jill 2013-05-12 16:33:46

+0

原始問題解決?對不起,但我不完全明白你在問什麼,如果你另外提出一個問題,如果確實是另一個問題,你可能會有更好的機會(所以你可以更好地解釋它)。 – 2013-05-12 16:36:22

+0

我想表示遺漏0,在grid中由X命中。我有一個位置接口,實現了船和NoShip類。我使用if(grid [i] [j] .wasHit()&& grid [i] [j] .isShip()){System.out.print(「X」); }否則如果(!網格[i] [j] .wasHit()&&網格[i] [j] .isShip()){ 是System.out.print( 「0」); } else { System.out.print(「 - 」); – jill 2013-05-12 16:45:28

0
I would like to know why we get NullpointerException and how to debug this code 
to have it working.

好,NullPointerException扔在NoShip.java:30,檢查這一點,你必須初始化打 或更改Booleanboolean,如果沒有初始化,那麼返回null,拋出NullPointerException

+0

我想表示遺漏0,在grid中由X命中。我有一個位置接口來實現ship和noShip類。我使用if(grid [i] [j] .wasHit()&& grid [i] [j] .isShip()){System.out.print(「X」); }否則如果(!網格[i] [j] .wasHit()&&網格[i] [j] .isShip()){ 是System.out.print( 「0」); } else { System.out.print(「 - 」);公共類船舶實現位置{ \t public boolean isShip(){ return true;/* true it has been hit ye​​t */ } 是否正確? – jill 2013-05-12 16:52:14

+0

你可以調試到有效的正確 – duplicatedcode 2013-05-12 17:08:49

相關問題