まだ初期化されていないオブジェクトから値をチェックしようとしましたが、値がまだnull
値であるため、NullPointerExceptionが発生します。これは、必要な場合にのみオブジェクトを初期化するのを待っているためです。必要がない場合は、メモリスペースを無駄にする必要はないと思います。
player2.getHandTotal()
まだ初期化されていないため、この例外が発生しているため、値を取得するメソッドがありません。さて、値をチェックするときにこの例外をスローしないように、whileループをどのように定式化する必要がありますか?私は投げようとしました(player2 != null && dealer.getHandTotal() <= player2.getHandTotal())
、そしてそれをチェックする短絡を望んでいました、しかしそれはうまくいきません...
カードが同じプレーヤーの2つのハンドにあるときplayer2
に使用されるハンドを意味します。2枚のカードがない、またはカードのランクが同じでないなどsplit
の要件がない場合は、オブジェクトを初期化する必要はありません。split
player2
私は本当に自分のコードを2倍にしたくありません!これは、たくさんのコードを2倍にする必要があるためです。そして、必要がない場合でも、オブジェクトを初期化したほうがいいでしょうplayer2
!
これを修正する方法は?
while(dealer.getHandTotal() <= 15 &&
(dealer.getHandTotal() <= player.getHandTotal() ||
dealer.getHandTotal() <= player2.getHandTotal()))
{
deck = drawFromDeck(deck, dealer);
}