336x280(권장), 300x250(권장), 250x250, 200x200 크기의 광고 코드만 넣을 수 있습니다.
코틀린을 보면 변수를 선언할 때 Int, String, Double 과 같이 선언을 하며 자바는 원시형(Primitive) 그리고 래퍼(Wrapper) 두 가지로 선언을 할 수 있다. 코틀린은 자바와 같이 이런 구분이 없다. 코틀린은 작성된 코드가 JVM에서 실행될 때 모두 래퍼로 매칭되는 것일까?
확인을 해보자면 아래와 같다. 아래는 코틀린 코드이다.
1 2 3 4 | var no: Int = 10 var count: Int? = 20 var name: String = "kkang" var email: String = "ktko@tistory.com" |
위의 코틀린 코드를 자바로 변환하면 아래와 같다. 이것은 책의 예제이고 직접 코틀린을 자바코드로 변환을 했었을 때 이렇게 안나왔다. 방법은 나도 잘 모르겠다 ...
1 2 3 4 5 6 7 | private static int no = 10; @Nullable private static Integer count = Integer.valueOf(20); @NotNull privae static String name = "kkang"; @Nullable private static String email = "a@a.com"; |
위의 두 코드를 비고해 보자면 ?를 붙이냐에 따라 @NotNull인지 @Nullalbe인지 정해지며, int, Integer과 같이 Primitive인지 Wrapper인지 정해진다.
데이터 타입이 매핑 되는지는 꼭 알고 있을 필요는 없다고 책에서는 설명되었는데 중요한 것 같아서 정리를 해보았다.
IntelliJ에서 변환했더니 아래와 같이 나왔다. 책에서 내용이 다른데 왜 다른지는 잘 모르겠다.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 | import kotlin.Metadata; import kotlin.jvm.internal.Intrinsics; import org.jetbrains.annotations.NotNull; @Metadata( mv = {1, 1, 13}, bv = {1, 0, 3}, k = 2, d1 = {"\u0000\u0014\n\u0000\n\u0002\u0010\u0002\n\u0000\n\u0002\u0010\u0011\n\u0002\u0010\u000e\n\u0002\b\u0002\u001a\u0019\u0010\u0000\u001a\u00020\u00012\f\u0010\u0002\u001a\b\u0012\u0004\u0012\u00020\u00040\u0003¢\u0006\u0002\u0010\u0005¨\u0006\u0006"}, d2 = {"main", "", "args", "", "", "([Ljava/lang/String;)V", "KotlinTest"} ) public final class TestKt { public static final void main(@NotNull String[] args) { Intrinsics.checkParameterIsNotNull(args, "args"); int no = true; int count = true; String name = "kkang"; String email = "ktko@tistory.com"; } } | cs |
'Kotlin 코틀린' 카테고리의 다른 글
코틀린 프로퍼티 맛보기 (0) | 2019.02.13 |
---|---|
코틀린의 null 안전 관련 연산자 (0) | 2019.02.12 |
코틀린 변수 함수 정리를 해보자 (0) | 2019.02.06 |
코틀린의 Any 그리고 Any? 대입 비교하기 (0) | 2019.02.06 |
코틀린의 클래스, 객체, 인터페이스 (0) | 2019.01.08 |