📝요약
코틀린으로 전환해야 하는 이유는, 코틀린은 간결함, 안정성, 호환성을 제공하기 때문입니다.
첫번째로, 코틀린은 data class, object 키워드 등으로 보일러 플레이트 코드를 없애는 간결성을 제공합니다.
두번째로, 코틀린은 Null Safety, 스마트 캐스트, 불변 등의 기능을 문법적으로 제공하여 안정성을 제공합니다.
마지막으로, 코틀린은 JVM과 호환되어 JAVA 라이브러리 및 프레임워크와의 호환성을 제공합니다.
📌참고자료
public class DataExample {
private final String name;
private int age;
private double score;
private String[] tags;
public DataExample(String name) {
this.name = name;
}
public String getName() {
return this.name;
}
void setAge(int age) {
this.age = age;
}
//...
public String[] getTags() {
return this.tags;
}
public void setTags(String[] tags) {
this.tags = tags;
}
@Override public String toString() {
return "DataExample(" + this.getName() + ", "
+ this.getAge() + ", " + this.getScore() + ", "
+ Arrays.deepToString(this.getTags()) + ")";
}
protected boolean canEqual(Object other) {
return other instanceof DataExample;
}
@Override public boolean equals(Object o) {
//...
return true;
}
@Override public int hashCode() {
//...
}
@Data
public class DataExample {
private final String name;
@Setter(AccessLevel.PACKAGE) private int age;
private double score;
private String[] tags;
data class DataExample(
val name: String, var score: String?,
var tags: Array<String>?
)
public class Something {
private Something() {}
private static class LazyHolder {
static final Something INSTANCE = new Something();
}
public static Something getInstance() {
return LazyHolder.INSTANCE;
}
}
object DataProviderManager {
fun registerDataProvider(provider: DataProvider) {
// ...
}
val allDataProviders: Collection<DataProvider>
get() = // ...
}