18456
kotlinの「？」の意味が分からないので教えてください。

> JSONObject?
```

     // 実行後
                override fun postExecute(result: JSONObject?) {
                    if (result == null) {
                        return
                    }
                    try {
                        // 各 ATND イベントのタイトルを配列へ格納
                        val list = ArrayList<String>()
                        val eventArray = result.getJSONArray("data")
    
                        for (i in 0..eventArray.length() - 1) {
                            val eventObj = eventArray.getJSONObject(i)
                            val event = eventObj.getJSONObject("data")
    
    
                            list.add(event.getString("data"))
                        }
    
```

[Kotlinの基本はここに記述されています](https://sites.google.com/site/tarokotlin/3-kotlinno-
biao-zhunapi)が、実例が少なく行き詰っています。  
他に良いものがあれば教えください。
CC BY-SA 3.0
2015-11-06T02:39:26.370
18454
2015-11-06T05:41:14.127
2015-11-06T05:41:14.127
7290
10715
question
java kotlin
kotlinの「？」
そのサイトで言うと、5.4のNULL安全に関する文法にあたります。

<https://sites.google.com/site/tarokotlin/chap5/sec54>

NULLに対して操作を行ったときに発生する例外をコンパイル時に防ぐために、NULLを代入可能にするには型名に?を付けて宣言する必要があり、その変数に対してメソッドを呼ぶ場合もNULLチェックをするか、?を付けて呼び出さないとコンパイルエラーになる、という文法上の規則です。
CC BY-SA 3.0
2015-11-06T02:53:30.847
18456
2015-11-06T02:53:30.847
5519
18454
answer