第七色在线视频,2021少妇久久久久久久久久,亚洲欧洲精品成人久久av18,亚洲国产精品特色大片观看完整版,孙宇晨将参加特朗普的晚宴

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

下面的代碼這一行 “handCards.add(hC);” 出現(xiàn)空指針異常。

下面的代碼這一行 “handCards.add(hC);” 出現(xiàn)空指針異常。

Meng7y 2017-10-06 21:12:54
package kuailedoudizhu;import java.util.ArrayList;import java.util.Scanner;/**?* 快樂比大小的玩家類?* Meng7y?* 2017年10月6日 19:21:43?*/public class Player { String name = null; ArrayList<String> handCards = null; String maxHC = null; int count = 0; public void setName() { System.out.println("歡迎您進入快樂比大小,請輸入您的游戲昵稱:"); Scanner info = new Scanner(System.in); name = info.next(); } public void contrast() { for(int i = 0; i < 3; i++) { int a = (int)(Math.random()*51); System.out.println(a); if(count < a) { count = a; } String hC = Card.deck.get(a); handCards.add(hC); } maxHC = Card.deck.get(count); } }
查看完整描述

4 回答

?
Developer_Zuck

TA貢獻112條經(jīng)驗 獲得超42個贊

我剛剛看了,并且運行了一下,問題在Player里面,你將第三行代碼改改就可以了,估計你一看就明白了。

public class Player {

String name = null;

ArrayList<String> handCards = new ArrayList<String>();//改動的地方


查看完整回答
1 反對 回復(fù) 2017-10-08
  • Meng7y
    Meng7y
    哈哈。真的,這樣的小細節(jié),關(guān)鍵時候要人命。頭都大了。handCards并沒有實例對象,一直等于空,所以怎么都會出現(xiàn)空指針。o(︶︿︶)o 唉,想了了一周的問題,看來有問題還是需要經(jīng)常問大神,不能自己苦想。
  • Developer_Zuck
    Developer_Zuck
    第一次以為一眼就看到錯誤了,有些尷尬哈。所以排錯不能著急,積累積累經(jīng)驗就好了。
  • Meng7y
    Meng7y
    看樣子你不是新手吧
?
onemoo

TA貢獻883條經(jīng)驗 獲得超454個贊

因為?handCards 一直是空指針??!

handCards 的初值是 null,你一直沒給它賦予適當?shù)膶ο?,隨后就在?contrast() 里調(diào)用?handCards.add,當然會出錯。

查看完整回答
1 反對 回復(fù) 2017-10-07
  • Meng7y
    Meng7y
    handCards.add()這個方法的確是添加內(nèi)容啊。沒有內(nèi)容,使用add方法,添加 。我水平不高,你覺得我這個需要怎么改才可以不抱空指針。我去試一試
  • onemoo
    onemoo
    確實,你還沒理解Java中的變量。Java中變量是對某個對象的“引用”——“引用”是常用的術(shù)語。你可以理解為:變量可以“表示”該類型的一個對象。通過變量可以操作這個對象。而變量也可以不引用任何對象,也就是變量為null——即空指針。但你不能通過這樣的變量來進行操作(畢竟它誰也沒代表呀),如果你試圖使用null變量,就會發(fā)生空指針異常。 那么,ArrayList<String> handCards = null 你聲明了一個ArrayList<String>類型的變量handCards,并且讓它為null變量,也就是它沒有引用任何實際對象!到后面你想通過handCards調(diào)用add方法就出錯了。 解決辦法是你必須先讓handCards引用一個實際的對象。對于這樣的類型,我們可以new一個對象出來,然后讓handCards引用它:handCards=new ArrayList<String>()。這樣讓handCards引用實際對象后,才能操作handCards。
  • onemoo
    onemoo
    順便說下,雖然你定義的String name和String maxHC這兩個變量一開始也是null,但在后面的其他語句中為它們賦予了值,也就是讓它們引用了某個對象。所以再使用這兩個變量才沒有出現(xiàn)空指針錯誤。
點擊展開后面4
?
Developer_Zuck

TA貢獻112條經(jīng)驗 獲得超42個贊

這里有一個問題,當i取值0的時候會出現(xiàn)什么問題?
你上面剛剛是i也就是0
緊接著你就打印的是1
這二者不是矛盾的嗎?
輸出語句也應(yīng)該是i,保持同步。

查看完整回答
1 反對 回復(fù) 2017-10-06
  • Meng7y
    Meng7y
    感謝提醒,不過問題沒有解決:o(︶︿︶)o
  • Developer_Zuck
    Developer_Zuck
    能把你的Car類的代碼發(fā)給我看看嗎?沒仔細看你的問題,跟你說個對不起,一定幫你解決,不圖什么,因為這是我的失誤
  • Meng7y
    Meng7y
    public class Player { String name = null; ArrayList<String> handCards = null; String maxHC = null; int count = 0; public void setName() { System.out.println("歡迎您進入快樂比大小,請輸入您的游戲昵稱:"); Scanner info = new Scanner(System.in); name = info.next(); } public void contrast() { for(int i = 0; i < 3; i++) { int a = (int)(Math.random()*51); System.out.println(a); if(count < a) { count = a; } String hC = Card.deck.get(a); handCards.add(hC); } maxHC = Card.deck.get(count); } } 這是Card類
點擊展開后面4
?
Its_forever

TA貢獻361條經(jīng)驗 獲得超328個贊

handPs1.add(handPs.get(i));

handPs集合里面還沒有值,取的時候報錯了

查看完整回答
反對 回復(fù) 2017-10-06
  • Meng7y
    Meng7y
    以前那個整個思路都是錯的,上面是我最新改進的代碼,可是還是會出現(xiàn)空指針異常,幫我看看
  • 4 回答
  • 0 關(guān)注
  • 2410 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯(lián)系客服咨詢優(yōu)惠詳情

幫助反饋 APP下載

慕課網(wǎng)APP
您的移動學(xué)習伙伴

公眾號

掃描二維碼
關(guān)注慕課網(wǎng)微信公眾號