HyunwookPark / question-box

2 stars 0 forks source link

NullPointerExceptionについて #47

Closed yoko-Developer closed 1 year ago

yoko-Developer commented 1 year ago

ぬるぽについて、理解が曖昧だったので調べてみました。 あまりにも初歩的な質問が多くてすみません。 よろしくお願いいたします。

【目的】 ・ぬるぽについて知りたい ・エラー文を確認して解決できるようになりたい

【疑問箇所】 ・"19.ログインログアウト実装の38分辺りで、ユーザー名を架空の値に設定してテストでエラーを出させる場面

【調べたこと】 ・参照型変数にnull値が格納されている時に、参照型変数を参照しようとした場合に発生する例外 ・妥当なオブジェクトを指していない変数に対してメソッド呼び出しをした際に発生する例外

【疑問点】 ・ぬるぽは参照値が"null"の場合に表示される例外だと思っていたが、loadUserByUsernameの参照値は"mamamamamama"なので、nullではない・・? ・"mamamamamama"があり得ない値のため表示されるエラーということでしょうか・・?

6F88D960-AAA8-4090-A335-F57C6B9F3D9D
HyunwookPark commented 1 year ago

@yoko-newDeveloper

参照型変数や参照値という言葉を使ってくれましたが その参照とはどのオブジェクトの参照を指しているのかをよく確認してみましょう。

yoko-Developer commented 1 year ago

ぬるぽについて調べました。 ・NullPointerExceptionとは、null値の参照型変数を参照しようとした時に発生する例外 ・nullとは参照型変数の値が定義されていない状態

ぬるぽについて考えました。

どのオブジェクトがnull?

→変数:user 参照型変数(引数):username 参照先:UserMapper

存在するuser:test,admin つまりusernameがmamamamamamaという引数は、参照先がないためぬるぽとなる。 testとadmin以外は存在しないため、mamamamamamaはエラーとなる。

・・・・・合っていますか?

HyunwookPark commented 1 year ago

@yoko-newDeveloper 惜しい!! 参照型変数・・・インスタンスを入れている変数のことです。 参照先・・・1. 参照型変数のメモリ上の住所(アドレス/ポインタ)       2. オブジェクト指向のときにオブジェクト間の関係性を表す(よく使う)

HyunwookPark commented 1 year ago

図解

Whiteboard 1 -01