変えたり端折ったり補足したりしている。Int)これだけでコンパイラが勝手に以下のものを作ってくれる。クラス内または継承元に明示的に定義されていれば勝手に生成したりしない。age=42)"って表示するtoString()宣言順で内容を取り出すcomponentN()関数copy()生成されるコードに一貫性を保つため、データクラスは以下を満たす必要がある。innerであってはならないデータクラスは他のクラスを継承してはいけない(がインターフェースを実装するかもしれない)JVM上では生成されるクラスにパラメータなしコンストラクタが必要になるなら、全てのプロパティにデフォルト値が与えられている必要がある。age)こんな感じで使う。標準ライブラリに用意されてるよ。場合はちゃんと名前をつけたデータクラスを用意した方がいい。コードが読みやすくなるからね。ジェネリクスJavaのようにKotlinのクラスも型パラメータを持てる。Box<Int>だと分かる変性(Variant)Javaの型システムで最もトリッキーなのはワイルドカード型。Kotlinはそんなん持ってない。projections)の2つを導入してる。※Kotlin本家のリファレンスマニュアルには、ここにJavaのジェネリクスの変性についての話が書いてあるけど、Javaの話なので省略。Consumer-Super)原則とか。(計算機科学)を参照。変性について考えられたジェネリックなクラスや関数を設計するのは難しいかもしれないけど、ほとんどの人は出来なくても大丈夫。ジェネリックなクラスや関数を利用するのは難しくないから。ほとんどのJavaプログラマが、ちゃんと理解してなくてもワイルドカード使ったライブラリを普通に使ってるはず。型の変数へ代入するのは完全に安全なはずだ。消費する(consumer)メソッド2はないから。Javaはこれを許可してくれない。型として宣言しなければならない。戻り値にしか使われないことを伝えられる。