kotlin data class 가 만난 구덩이

1529 단어 Androidkotlin
우 리 는 모두 data class 의 용법 을 알 고 있 으 니,여 기 는 그다지 번 거 롭 지 않다.
Kotlin 에 서 는 자바 빈 을 직접 쓰 지 않 아 도 됩 니 다.DataClass 를 직접 사용 할 수 있 습 니 다.DataClass 컴 파일 러 를 사용 하면 다음 과 같은 함 수 를 묵묵히 생 성 할 수 있 습 니 다.
equals()
hashCode()
toString()
componentN()
copy()

data class 의 구덩이:
data class 가 컴 파일 러 에 의 해 자바 빈 을 생 성 할 때 final 류 이 고 인삼 이 없 는 구조 함수 이기 때문에 사용 과정 이 매우 불편 하지만 우 리 는 공식 적 으로 제 시 된 플러그 인 을 이용 하여 이러한 문 제 를 해결 할 수 있다(noarg,allopen.
1.의존 도 추가
buildscript {
    dependencies {
        classpath "org.jetbrains.kotlin:kotlin-noarg:$kotlin_version"
        classpath "org.jetbrains.kotlin:kotlin-allopen:$kotlin_version"
    }
}

2.프로젝트 에 의존
apply plugin: 'kotlin-noarg'
apply plugin: 'kotlin-allopen'

3、annotation 만 들 기
package mm.learn.kotlin._001_class.annotations;

annotation class NoArgOpenDataClass

4.설정 추가
noArg{
    annotation("mm.learn.kotlin._001_class.annotations.NoArgOpenDataClass")
}

allOpen{
    annotation("mm.learn.kotlin._001_class.annotations.NoArgOpenDataClass")
}

5.주 해 를 data class 에 사용
@NoArgOpenDataClass
data class Student(var id: Int, var name: String, var continent: String)

6.위의 5 단 계 를 거치 면 컴 파 일 러 가 지 워 줍 니 다.  final  키 워드 를 만 들 고 인삼 이 없 는 구조 방법 을 만 들 지만 컴 파일 러 에서 하 는 작업 이기 때문에 소스 코드 에서 인삼 이 없 는 구조 함 수 를 직접 사용 할 수 없고 반사 로 만 사용 할 수 있 습 니 다.

좋은 웹페이지 즐겨찾기