//안전하지 않다
public boolean startsWithA(String str){
return str.startsWith("A");
}
public boolean startsWithA1(String str){
if(str == null) {
throw new IllegalArgumentException("null이 들어왔습니다");
}
return str.startsWith("A");
}
public Boolean startsWithA2(String str){
if(str == null) {
return null;
}
return str.startsWith("A");
}
public boolean startsWithA3(String str){
if(str == null) {
return false;
}
return str.startsWith("A");
}
//safe call
val str: String? = "ABC"
str.length //불가능
str?.length //가능
nullable type이지만, 아무리 생각해도 null이 될 수 없는 경우
fun startsWtih(str: String?): Boolean {
return str!!.staartsWith("A")
}
코틀린이 플랫폼타입 즉 다른 언어의 타입 중 null 관련 정보를 알 수 없는 타입 Runtime 시 Exception이 날 수 있다