나는 방 (얻기 위해 노력하고 https://developer.android.com/topic/libraries/architecture/room 에 설명 된대로 코 틀린의 인라인 클래스와 함께) 작업을 제이크 Whartons 문서 인라인 클래스 큰 데이터베이스 ID를 확인합니다 :
@Entity
data class MyEntity(
@PrimaryKey val id: ID,
val title: String
)
inline class ID(val value: String)
이 방을 편집 할 때
엔티티와 Pojo에는 사용 가능한 공용 생성자가 있어야합니다. 빈 생성자 또는 매개 변수가 필드와 이름 (유형 및 유형)과 일치하는 생성자가있을 수 있습니다.
생성 된 Java 코드를 살펴보면 다음과 같습니다.
private MyEntity(String id, String title) {
this.id = id;
this.title = title;
}
// $FF: synthetic method
public MyEntity(String id, String title, DefaultConstructorMarker $constructor_marker) {
this(id, title);
}
의문의 여지없이 기본 생성자는 이제 비공개입니다.
(또는 a ) String
의 유형으로 사용 하면 생성 된 Java 클래스 생성자가 예상 한 것처럼 보입니다.id
typealias
public MyEntity(@NotNull String id, @NotNull String title) {
Intrinsics.checkParameterIsNotNull(id, "id");
Intrinsics.checkParameterIsNotNull(title, "title");
super();
this.id = id;
this.title = title;
}
이제 인라인 클래스를 데이터 엔터티 속성으로 사용하는 동안 기본 생성자를 공개로 유지하는 방법이 있습니까?
일부 이슈 트래커에서 이에 대한 이슈가 발생 했습니까? 나는이 필요가 있는지에 대해 명확히 할 것 같아요
—
K.Os