【KotlinとJava】データ型の宣言
KotlinとJava
JavaにはC言語のような構造体
がなく、クラスを利用してデータを格納する。Kotlinではデータを扱うための仕組みが用意されている。ここからはしばらくデータ型についての記事となる。じっくり読み進めていってほしい。
Data classes.kt
data class User(val name: String, val id: Int)
fun getUser(): User {
return User("Alex", 1)
}
fun main(args: Array<String>) {
val user = getUser()
println("name = ${user.name}, id = ${user.id}")
// or
val (name, id) = getUser()
println("name = $name, id = $id")
// or
println("name = ${getUser().component1()}, id = ${getUser().component2()}")
}
data class
データを扱う仕組みとはいえ、その実態はクラスであるようだ。
分解宣言も行うことができる。また、componentN
を利用して内部の変数にアクセスすることもできる。前回のPairクラスはデータクラスといって差し支えないだろう。
Javaで記述
対比ができるようにJavaでも同じものを記述してみよう。
public class User {
private final String name;
private final int id;
private User(String name, int id) {
this.name = name;
this.id = id;
}
public static User getUser() {
return new User("Alex", 1);
}
public String getName() {
return name;
}
public int getId() {
return id;
}
}
public class Exp14 {
public static void main(String[] args) {
final User user = User.getUser();
String template = "name = %s, id = %d";
System.out.println(String.format(template, user.getName(), user.getId()));
// or
final String name = user.getName();
final int id = user.getId();
System.out.println(String.format(template, name, id));
// or
System.out.println(String.format(template, user.getName(), user.getId()));
}
}
上でも触れたとおり、Javaにはデータそのものを格納するものはない。通常のクラスを利用して、Dataの格納を行っている。
コメント
コメントを投稿