Java if문과 비교. 외부 라이브러리를 사용하거나 아래와 같은 경우 복잡한 if문의 사용이 강제 될 때가 있다. Java
if (myData == null ||
myData.getProp() == null ||
!(mydata.getProp().get() instanceof MyDataPropValue)) {
return;
}
Kotlin
val myDataPropValue = (myData?.getProp()?.get() as? MyDataPropValue) ?: return
연산자 오버로딩 (operator overloading)과 코들린 stdlib 연산자 오버로딩의 의미 : 기 존재하는 연산자의 커스텀타입 구현가능. 표준 라이브러리(stdlib)에 다양한 기본 타입의 연산자가 구현되어 있음. ex) + operator for lists 두가지의 리스트를 더하고 싶을때 다음과 같이 하면된다.
val allItems = firstList + secondList
Sorting 코틀린 stdlib은 몇가지 정렬기능을 가진다. 예) 자바에서 date 값을 기준으로 정렬하고자 할때. Java
myList.sort(new Comparator<MyObject>() {
@Override
public int compare(MyObject left, MyObject right) {
return left.getDate().compareTo(right.getData());
}
});
Kotlin
val sortedList = myList.sortedBy { it.date }