1. Kotlin 플러그인 추가
id 'org.jetbrains.kotlin.jvm'
2. Kotlin 표준 라이브러리 의존성
implementation "org.jetbrains.kotlin:kotlin-stdlib-jdk8"
3. Java + Kotlin 혼합 지원
Gradle 기본 지원
4. JVM 버전 명시
kotlin { jvmToolchain(17) }
아직 문법을 모르기에 xxxException 클래스를 코틀린 파일로 변경해보기로 했다
클래스명 : 인터페이스, 클래스 //상속 관계 표시
타입 대신에 val , var 키워드 사용
String name = "Alice";
int age = 30;
val name = "Alice" // 변경 불가 (final)
var age = 30 // 변경 가능
클래스와 생성자
public class User {
private String name;
public User(String name) {
this.name = name;
}
}
class User(val name: String) // 생성자 + 필드 자동 생성
함수 선언
public int sum(int a, int b) {
return a + b;
}
fun sum(a: Int, b: Int): Int = a + b
Null Safe 처리
if (user != null) {
System.out.println(user.name);
}
println(user?.name) // null-safe call
println(user?.name ?: "기본값") // Elvis 연산자
문자열 보간
String greeting = "Hello, " + name;
val greeting = "Hello, $name"
Swtich vs When
switch (grade) {
case "A": ...
}
when (grade) {
"A" -> ...
else -> ...
}
Companion Object (Java static 대체)
public class Util {
public static void print() { ... }
}
class Util {
companion object {
fun print() { ... }
}
}
후기
(1) TypeScript 향기도 나고 SQL 향기도 나고 특이하다
(2) Kotlin 사용 이점에 대해 한 번 찾아봐야겠다
[자바] JVM 구조 (0) | 2025.03.27 |
---|---|
[자바] 추상 클래스와 인터페이스에 대해 설명해주세요 (0) | 2025.03.27 |
[JAVA] Random vs SecureRandom vs ThreadLocalRandom (0) | 2024.12.26 |
[자바] Collections API : TreeMap (0) | 2024.10.22 |
[Java] Reflection (0) | 2024.01.06 |