본문 바로가기
Kotlin

JAVA DTO를 Kotlin DTO로..

by jisung-kim 2024. 1. 8.

JAVA DTO를 Kotlin DTO로 변환하기.

JAVA로 만들어진 UserResponse DTO이다.

생성자가 존재하며 getter가 존재한다.

UserResponse.java

public class UserResponse {

  private final long id;
  private final String name;
  private final Integer age;

  public UserResponse(User user) {
    this.id = user.getId();
    this.name = user.getName();
    this.age = user.getAge();
  }

  public long getId() {
    return id;
  }

  public String getName() {
    return name;
  }

  public Integer getAge() {
    return age;
  }

}

 

UserResponse.kt

data class UserResponse(
    val id: Long,
    val name: String,
    val age: Int?	  
) {
    companion object { 
        fun of(user: User): UserResponse {
            return UserResponse(
                id = user.id!!,	// not-null을 의미.
                name = user.name,
                age = user.age
            )
        }
    }
}

 

?은 Nullable을 의미.

 companion object는 클래스의 인스턴스 없이 접근할 수 있는 객체를 의미.

of 함수는 User 클래스의 인스턴스를 받아서 그 정보를 기반으로 UserResponse 인스턴스를 생성하고 반환.

 !!는 not-null을 의미.

 

자바에서는 Lombok을 쓰지만 Kotlin에서는 굳이 Lombok을 사용하지 않아도 된다.

기본 생성자에 정의한 필드는 val 이면 Getter, var이면 Getter와 Setter가 모두 포함된것으로 의미하면 된다.

또한 Data Class는 equals(), hashCode(), toString()등의 메소드가 모두 포함된것으로 보면된다.

물론 Kotlin에서도 Lombok을 사용할 순 있다.

Kotlin에서 Lombok을 사용할때 주의점은  Java코드와 같이 사용하게되면 컴파일에러가 나올 수 있으며

Kotlin을 DeLombok해야한다.

 

 

'Kotlin' 카테고리의 다른 글

Java Entity코드를 Kotlin Entity로..  (0) 2024.01.09
Java Service코드를 Kotlin Service코드로..  (0) 2024.01.08
Java Controller를 Kotlin Controller로  (1) 2024.01.08