Java学習中のメモ
目次
はじめに
Javaの学習中に発生した見逃してしまいそうなエラーについて簡単にメモしています。
ラッパークラスによるぬるぽ
Javaにはintなどのプリミティブ型とIntegerなどのラッパークラスがあります。
intは数値を保持することはできますが、nullを扱うことはできません。
Integerはオブジェクトのため、値とnullを扱うことができます。
intとIntegerの変換は自動的にされるため、テスト不足等でぬるぽ
が発生する場合があります。
下記はぬるぽ
を再現するプログラムです。
sumメソッドは、int型を扱う設計になっていますが、Integerを利用することで想定外にnullを利用されることがあります。
このプログラムでは、mainメソッドからsumメソッドを呼び出すタイミングでException in thread "main" java.lang.NullPointerException
が発生します。
public class Main {
public static void main(String[] args) {
Integer num1 = 1;
Integer num2 = null;
Integer ans = sum(num1, num2);
System.out.println(ans);
}
public static int sum(int num1, int num2) {
return num1 + num2;
}
}