カテゴリ: Kotlin 更新日: 2025/09/24

Kotlinのnull安全とは?初心者が最初に覚えるnull許容の書き方

Kotlinのnull安全とは?初心者が最初に覚えるnull許容の書き方
Kotlinのnull安全とは?初心者が最初に覚えるnull許容の書き方

先生と生徒の会話形式で理解しよう

生徒

「Kotlinでnullって何ですか?どうやって使うのか全然分からないです…」

先生

「とてもいい質問ですね!Kotlinではnullの扱い方をしっかり学ぶことが大切です。null(ヌル)とは、値が存在しないことを表す特別な値なんです。」

生徒

「値がないってことですか?それがプログラムでどう使われるんですか?」

先生

「そうです。Kotlinでは、nullの取り扱いをとても慎重に考えています。具体的に、nullを安全に扱う『null安全(null safety)』という仕組みがあります。今日は、Kotlinのnull安全の基本と、初心者でもわかるnull許容の書き方を解説します!」

1. null(ヌル)とは?

1. null(ヌル)とは?
1. null(ヌル)とは?

Kotlinでよく出てくるnullは、「値がないこと」を表す特別な値です。たとえば、何かを入れる箱を考えてみましょう。普通は箱の中に物が入っていますよね。でも、箱の中に何も入っていない場合もあります。この「何も入っていない状態」が、プログラムでいうnullです。

プログラミングでは、データが入っていない状態や、まだ決まっていない状態を表すときにnullを使います。

2. Kotlinのnull安全(null safety)とは?

2. Kotlinのnull安全(null safety)とは?
2. Kotlinのnull安全(null safety)とは?

プログラミングの世界では、nullを正しく扱わないと、エラーが起きてしまうことがあります。たとえば、nullの値をそのまま使おうとすると、「NullPointerException(ヌルポインタ例外)」というエラーになります。

このエラーはプログラムを止めてしまう原因になるので、初心者にとってもとても大事なポイントです。

そこで、Kotlinはnullの扱いに厳しくルールを決めています。これが「null安全(null safety)」です。

Kotlinでは、変数がnullを許すかどうか、はっきり書いてあげる必要があります。こうすることで、プログラムが安全に動くようになります。

3. null許容型と非null型の違い

3. null許容型と非null型の違い
3. null許容型と非null型の違い

Kotlinでは、変数にnullを入れられるかどうかを、型に?(クエスチョンマーク)をつけるかどうかで区別します。

  • 非null型(nullを入れられない型)
  • null許容型(nullを入れられる型)

例えば、文字列(String)を考えてみます。

Stringだけだと、nullを入れることはできません。でも、String?と書くと、nullも入れられるようになります。

4. null許容の書き方

4. null許容の書き方
4. null許容の書き方

実際にKotlinのコードで、nullを許す型の書き方を見てみましょう。


fun main() {
    var name: String? = null
    println(name)
}

この例では、nameという変数にString?と書いてあります。これは「文字列かもしれないし、nullかもしれない」という意味です。

実行すると、nullが出力されます。

出力結果:


null

5. null許容型を使う理由と注意点

5. null許容型を使う理由と注意点
5. null許容型を使う理由と注意点

なぜ、わざわざnullを許容する型を使うのか疑問に思うかもしれません。実際には、プログラムで「値が決まっていない」状態を表す必要があるときがあります。たとえば、データベースからデータを取ってくるときに、まだデータが存在しない場合などです。

でも、nullを使うときは注意が必要です。間違ってnullを使うと、エラーになることもあります。そのため、Kotlinではnullを扱うときに必ず?をつけるルールがあります。

6. nullを扱うときの基本ルール

6. nullを扱うときの基本ルール
6. nullを扱うときの基本ルール

では、初心者が気をつけるべき基本のルールをまとめます。

  • 非null型:値を必ず入れる型。例:Stringnullはダメ)
  • null許容型nullも入れられる型。例:String?

?をつけるかどうか」をしっかり意識すると、Kotlinのプログラムが安全になります。

例えば、Intも同じです。Intならnullは入れられませんが、Int?ならnullも入れられます。

7. null許容のイメージ

7. null許容のイメージ
7. null許容のイメージ

もう一度、null許容のイメージを思い出しましょう。箱をイメージすると分かりやすいです。

普通のString型は「必ず中身がある箱」です。String?型は「中身があるかもしれないし、空っぽかもしれない箱」です。

この違いを意識すると、Kotlinのnull安全がより分かりやすくなります。

まとめ

まとめ
まとめ

Kotlinのnull安全(null safety)は、プログラミング初心者が最初につまずきやすいポイントのひとつですが、しっかりと基本をおさえれば怖くありません。nullとは「値が存在しないこと」を表す特別な値であり、Kotlinではnullによるエラーを防ぐために、null許容型と非null型を明確に分けて設計されています。たとえば、nullを許容する型には?(クエスチョンマーク)を使い、これにより安全なコードを書くことができます。

Kotlinでは、明示的にnullを許可するかどうかを型レベルで制御します。たとえば、String型はnullを受け付けませんが、String?型にすればnullを代入可能です。この仕組みによって、KotlinではNullPointerException(ヌルポインタ例外)の発生リスクを減らすことができるのです。

プログラミング初心者にとって、型に?を付けるかどうかの判断は最初は難しく感じるかもしれません。しかし、これを正しく使うことで「この変数は絶対にnullじゃない」とか「この変数はnullの可能性がある」といった設計が明確になり、コードの読みやすさや保守性も高まります。

また、null許容型を使うことで、まだ値が決まっていないデータの状態を安全に扱うことができます。これは、データベースの値がまだ取得されていない場合や、Web APIの応答を待っている場面など、実際のアプリケーション開発においてとても重要です。

Kotlinでnull安全を意識することは、バグの少ない、安全なアプリケーションを作る第一歩です。「nullとは何か」「nullを許容する型とは何か」「なぜ?が必要なのか」——こうした基本を理解することで、より強固で信頼性の高いコードを書くことができるようになります。

Kotlin初心者にとって、nullの扱いは戸惑う部分ですが、ひとつひとつの仕組みを正しく学べば、Kotlinがなぜ「安全なプログラミング言語」と言われているかを実感できるはずです。

これからKotlinを使ってAndroidアプリを開発したい人や、Webバックエンド開発をしたい人にとって、null安全の理解はとても重要なステップです。特に、KotlinとJavaを併用するプロジェクトや、データベースと連携する処理などでは、nullの扱いがプログラムの安定性を大きく左右します。

最後にもう一度、null許容型の使い方をおさらいしましょう。


fun main() {
    var userName: String? = null
    if (userName != null) {
        println("ようこそ、${userName}さん")
    } else {
        println("ユーザー名が未設定です")
    }
}

このように、nullを許容する変数には?を使い、条件分岐などで安全に扱うことがKotlinの基本です。

先生と生徒の振り返り会話

生徒

「今日のKotlinのnullの話、最初は難しそうだったけど、?をつける意味がよく分かりました!」

先生

「そうですね。null安全はKotlinの大きな特徴なので、今後どんなプログラムを書くときでも役立ちますよ。」

生徒

StringString?の違いも、箱にたとえてもらったおかげでイメージがつきました!」

先生

「よかったです。これからはnull許容型と非null型の違いを意識しながら、エラーの少ないコードを書いていきましょう。」

生徒

「はい!Kotlinのnull安全、しっかり覚えました!」

この記事を読んだ人からの質問

この記事を読んだ人からの質問
この記事を読んだ人からの質問

プログラミング初心者からのよくある疑問/質問を解決します

Kotlinのnullとは何ですか?初心者にもわかりやすく教えてください

Kotlinにおけるnull(ヌル)とは、「値が存在しない状態」を表す特別な値です。箱に例えると、中身が空っぽの箱のようなイメージで、何もデータが入っていないという意味になります。
関連記事:
カテゴリの一覧へ
新着記事
Go言語の関数でエラーハンドリングする基本的な方法
Go言語のスライス・マップ・配列をまとめて比較してみよう!初心者でもわかる使い分けの基本
Go言語の条件分岐の見やすい書き方を徹底解説!初心者でもわかるif文の使い方
Go言語とは何か?初心者向けに特徴・できること・インストール手順までやさしく解説
人気記事
No.1
Java&Spring記事人気No1
Swift Playgroundの使い方を完全解説!初心者に最適な学習環境の始め方
No.2
Java&Spring記事人気No2
Go言語で条件式を1行で書くコツ!三項演算子の代替と短縮記法
No.3
Java&Spring記事人気No3
Swift開発環境の構築方法を徹底解説!Xcode・Windows・Linux対応
No.4
Java&Spring記事人気No4
Kotlinのデータクラス(data class)とは?便利な特徴と使い方を初心者向けにやさしく解説!