>  기사  >  Java  >  Kotlin 데이터 클래스와 Java: 두 도시 이야기(그러나 하나는 상용구가 훨씬 적음)

Kotlin 데이터 클래스와 Java: 두 도시 이야기(그러나 하나는 상용구가 훨씬 적음)

Barbara Streisand
Barbara Streisand원래의
2024-11-04 12:56:29525검색

Kotlin Data Classes vs Java: A Tale of Two Cities (But One Has Way Less Boilerplate)

아, 데이터 클래스요. 작고 부지런한 개미처럼 한 기능에서 다른 기능으로 데이터를 운반하는 프로그래밍 세계의 겸손한 일꾼입니다. ? 그러나 Java에서는 이러한 데이터 매체를 만드는 것이 마치 손으로 개미집 전체를 만드는 것처럼 느껴질 수 있습니다. 공원에서 소풍을 가는 것만큼 수월하게 데이터 클래스를 제공하는 Kotlin을 만나보세요. ?

자바: 상용구의 땅(개선하려고 노력 중이지만!)

Java에서 간단한 데이터 클래스를 만드는 데는 getter, setter, 생성자, equals(), hashCode() 및 toString() 메서드의 교향곡이 포함됩니다. 가장 노련한 개발자라도 키보드에 대고 눈물을 흘리게 만들기에 충분합니다. ?

// Java
public class Person {
    private String name;
    private int age;

    public Person(String name, int age) {
        this.name = name;
        this.age = age;
    }

    public String getName() {
        return name;

    }

    public void setName(String name) {
        this.name = name;
    }

    public int getAge() {
        return age;
    }

    public void setAge(int age) {
        this.age = age;
    }

    // ... (equals, hashCode, toString - the horror!)
}

저 코드만 보면 누워버리고 싶어지네요. ?

하지만 Java 개발자 여러분, 두려워하지 마세요! 언어는 상용구를 줄이는 데 약간의 진전을 이루었습니다. 다음은 Kotlin의 데이터 클래스 우아함을 엿볼 수 있는 몇 가지 옵션입니다.

  • 레코드(Java 14 이상): 이는 데이터 보관을 위해 특별히 설계된 불변 클래스입니다. 컴파일러는 생성자, getter, equals(), hashCode() 및 toString() 메서드를 자동으로 생성합니다.
// Java
record Person(String name, int age) {} 
  • 프로젝트 롬복: 이 인기 있는 라이브러리는 주석을 사용하여 상용구 코드를 생성합니다. @Data 주석을 사용하면 최소한의 노력으로 필요한 모든 메서드를 얻을 수 있습니다.
// Java
import lombok.Data;

@Data
public class Person {
    private String name;
    private int age;
}

이러한 옵션은 올바른 방향으로 나아가는 단계이지만 Kotlin 데이터 클래스의 간결함과 풍부한 기능에는 맞지 않습니다.

Kotlin: 데이터 클래스 오아시스

무한한 지혜를 지닌 Kotlin은 "상용구로는 충분합니다!"라고 말했습니다. 데이터 클래스를 도입했습니다. 데이터라는 단일 키워드를 사용하면 모든 필수 메서드가 자동으로 생성됩니다. 마치 마법 같지만 실제로 효과가 있는 종류입니다.

// Kotlin
data class Person(val name: String, val age: Int)

그렇습니다! 두 줄의 코드와 getter, setter, equals(), hashCode() 및 toString()이 모두 준비된 완전한 기능의 데이터 클래스가 있습니다. 여기에서 Java 개발자들의 환호를 실제로 들을 수 있습니다. ?

하지만 잠깐, 더 많은 것이 있습니다

Kotlin 데이터 클래스에는 다음과 같은 추가 기능도 함께 제공됩니다.

  • 기본적으로 불변성: 속성에 val을 사용하면 데이터 클래스가 불변의 요새가 되어 데이터가 실수로 수정되지 않도록 보호합니다. ?️
  • Copy() 함수: 데이터 개체의 약간 수정된 버전을 만들어야 합니까? copy() 함수를 사용하면 매우 쉽습니다. ?️
  • 구조 분해 선언: 데이터 클래스의 개별 구성 요소를 별도의 변수로 쉽게 추출할 수 있습니다. 완벽하게 정리된 여행가방을 푸는 것과 같습니다. ?

결론적으로(TL;DR)

Kotlin 데이터 클래스는 Java 상용구 세계에 신선한 공기를 불어넣는 역할을 합니다. 간결하고 효율적이며 유용한 기능이 가득합니다. 따라서 끝없는 getter 및 setter 작성에 지쳤다면 이제 Kotlin 방식을 받아들여야 할 때입니다. 당신의 손가락과 온전한 정신이 당신에게 감사할 것입니다. ?

추신 아직도 상용구에 집착하는 Java 개발자라면 걱정하지 마세요. 우리는 당신을 위해 불을 켜 놓을 것입니다. ?

위 내용은 Kotlin 데이터 클래스와 Java: 두 도시 이야기(그러나 하나는 상용구가 훨씬 적음)의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.