2024.01.23

Javaプログラミング

Lightning-81

変数にnullを代入できる?

各種データ型(boolean/byte/short/int/long/float/double/char/String)の変数に値にnullが代入できるかを確認しました。

変数にnullが代入できるかを確認する方法

変数の初期値を確認する方法は、以下のとおりです。

変数を宣言してnullを代入します。

例) int a = null;

②宣言した変数の値をSysmtem.out.printlnメソッドで出力します。

例) System.out.println( a );

nullを代入した変数の値を出力します。

確認した結果

String型の変数nullが代入できました。

boolean型byte型short型int型long型float型double型char型変数nullを代入する行でコンパイルエラーがでました。

以下のソースコードは、実行に成功したString型の変数nullを代入するものです。

String型変数にnullが代入可能かを確認するソースコード

SetNullStr.java

001
002
003
004
005
006
007
008
009
public class SetNullStr {
	public static void main( String[] args ) {
		// String型の変数aを宣言しnullを代入
		String a = null;

		// 変数aに値を代入しないで出力
		System.out.println( a );
	}
}

コンパイル ソースコードが「ANSI」の場合

C:\talavax\javasample>javac -encoding sjis SetNullStr.java

コンパイル ソースコードが「UTF-8」の場合

C:\talavax\javasample>javac SetNullStr.java

SetNullStrを実行

C:\talavax\javasample>java SetNullStr

実行結果

null

String型の変数aにnullを代入したものを出力するとnullが出力されました。

String型は参照型なので、nullが代入できます。

ここからは、コンパイルに失敗するソースコードです。

boolean型byte型short型int型long型float型double型char型変数nullを代入するとコンパイルに失敗します。

プリミティブ型変数nullを代入しているのでエラーになります。

以下のコンパイルエラーは、int型変数nullを代入して出力されるものです。

コンパイルエラー例

SetNullI.java:6: エラー: 不適合な型: をintに変換できません:
                int a = null;	// ← プリミティブ型の変数aにnullを代入しようとしている、この行でコンパイルエラーが出ます。
                        ^
エラー1個

boolean型変数にnullが代入可能かを確認するソースコード

SetNullTF.java

001
002
003
004
005
006
007
008
009
010
011
// このJavaソースコードは、コンパイルに失敗します。

public class SetNullTF {
	public static void main( String[] args ) {
		// bolean型の変数aを宣言しnullを代入
		boolean a = null;	// ← プリミティブ型の変数aにnullを代入しようとしている、この行でコンパイルエラーが出ます。

		// 変数aに値を代入しないで出力
		System.out.println( a );
	}
}

byte型変数にnullが代入可能かを確認するソースコード

SetNullB.java

001
002
003
004
005
006
007
008
009
010
011
// このJavaソースコードは、コンパイルに失敗します。

public class SetNullB {
	public static void main( String[] args ) {
		// byte型の変数aを宣言しnullを代入
		byte a = null;	// ← プリミティブ型の変数aにnullを代入しようとしている、この行でコンパイルエラーが出ます。

		// 変数aに値を代入しないで出力
		System.out.println( a );
	}
}

short型変数にnullが代入可能かを確認するソースコード

SetNullS.java

001
002
003
004
005
006
007
008
009
010
011
// このJavaソースコードは、コンパイルに失敗します。

public class SetNullS {
	public static void main( String[] args ) {
		// short型の変数aを宣言しnullを代入
		short a = null;	// ← プリミティブ型の変数aにnullを代入しようとしている、この行でコンパイルエラーが出ます。

		// 変数aに値を代入しないで出力
		System.out.println( a );
	}
}

int型変数にnullが代入可能かを確認するソースコード

SetNullI.java

001
002
003
004
005
006
007
008
009
010
011
// このJavaソースコードは、コンパイルに失敗します。

public class SetNullI {
	public static void main( String[] args ) {
		// int型の変数aを宣言しnullを代入
		int a = null;	// ← プリミティブ型の変数aにnullを代入しようとしている、この行でコンパイルエラーが出ます。

		// 変数aに値を代入しないで出力
		System.out.println( a );
	}
}

long型変数にnullが代入可能かを確認するソースコード

SetNullL.java

001
002
003
004
005
006
007
008
009
010
011
// このJavaソースコードは、コンパイルに失敗します。

public class SetNullL {
	public static void main( String[] args ) {
		// long型の変数aを宣言しnullを代入
		long a = null;	// ← プリミティブ型の変数aにnullを代入しようとしている、この行でコンパイルエラーが出ます。

		// 変数aに値を代入しないで出力
		System.out.println( a );
	}
}

float型変数にnullが代入可能かを確認するソースコード

SetNullF.java

001
002
003
004
005
006
007
008
009
010
011
// このJavaソースコードは、コンパイルに失敗します。

public class SetNullF {
	public static void main( String[] args ) {
		// float型の変数aを宣言しnullを代入
		float a = null;	// ← プリミティブ型の変数aにnullを代入しようとしている、この行でコンパイルエラーが出ます。

		// 変数aに値を代入しないで出力
		System.out.println( a );
	}
}

double型変数にnullが代入可能かを確認するソースコード

SetNullD.java

001
002
003
004
005
006
007
008
009
010
011
// このJavaソースコードは、コンパイルに失敗します。

public class SetNullD {
	public static void main( String[] args ) {
		// double型の変数aを宣言しnullを代入
		double a = null;	// ← プリミティブ型の変数aにnullを代入しようとしている、この行でコンパイルエラーが出ます。

		// 変数aに値を代入しないで出力
		System.out.println( a );
	}
}

char型変数にnullが代入可能かを確認するソースコード

SetNullC.java

001
002
003
004
005
006
007
008
009
010
011
// このJavaソースコードは、コンパイルに失敗します。

public class SetNullC {
	public static void main( String[] args ) {
		// char型の変数aを宣言しnullを代入
		char a = null;	// ← プリミティブ型の変数aにnullを代入しようとしている、この行でコンパイルエラーが出ます。

		// 変数aに値を代入しないで出力
		System.out.println( a );
	}
}

以上です。

関連コンテンツ

Javaの学習に役立つソースコードを多数紹介しています。是非、ご覧ください。

2022.09.10

プログラミングで使う変数って何?

2020.03.23

数値型の変数の最小値・最大値がプログラムで取得でします。

2016.01.20

for文で変数名iがよく使われる理由について説明しています。興味のある方は是非。

2022.08.29

計算の結果が∞となるときの表現方法について解説しています。

2016.02.15

各種データ型の変数に値を代入しない場合、変数の初期値は?

2024.01.18

各種データ型の変数にnullが代入できるかを確認しました。

2024.01.23

リテラル(literal)の意味を説明しています。興味がある方は是非ご覧ください。

2020.03.23

変数やクラスに格納されている値をコンソール出力する方法は?

2020.03.23

Javaを使った簡単な応用プログラム(生年月日から年齢を計算プログラムなど)を紹介しています。

2022.07.07

コンピュータを制御するために使用する入力機能と出力機能を持つ装置のことをコンソールといいます。興味のある方は、ご覧ください。

2020.08.24

数学に関係するJavaのメソッドやソースコードなどを紹介しています。

2022.10.25

画像フォーマット形式・色・大きさ・傾きなどの変更、特定の図形(文字・記号など)を見つけたり、取り出したりする画像処理について詳しく解説。

2015.11.29

プログラミング、ITに関する用語をまとめています。

2022.10.17

プログラムの最初に実行されるメソッドは?

2022.12.13

Javaのプログラムを書いてみませんか?プログラムの書き方をくわしく説明しています。

2020.03.23

「Javaソースコード」から実行可能な「オブジェクトコード」に変換する方法をくわしく説明しています。

2020.03.23

StringクラスとStringBuilderクラスを利用したプログラミングの仕方を紹介しています。

2016.12.16

Javaで扱うデータ型について説明しています。

2020.03.23

コンピュータで扱う情報の量を表す単位って何?メモリ、HDD(ハードディスク)、SSDなどデータを格納する機器の仕様に書いている記号GB,TBとは?

2020.10.12

広告