티스토리 뷰
@Entity
class User(
var name: String,
) {
fun updateName(name: String) {
this.name = name
}
}
- 생성자 안의 var property 로 name 생성
- setter 대신 함수를 만들어 update name
(var property) name setter가 public 으로 열려있지만, 함수를 이용하는 것이 클린하다.
이유?
1. 함수의 이름으로 명시적으로 사용 가능
2. 여러가지 property를 한번에 업데이트 가능
setter를 private하게 만드는 법
1. backing property (_name)
class User(
private var _name: String
) {
val name: String
get() = this._name
}
setter 만 private하게 만들 수 있다.
2. custom setter
class User(
name: String
) {
var name = name
private set
}
코드 컨벤션
모든 setter를 private하게 만들어서 사용할 수 있지만, 번거로운 단점이 있다.
이럴 때 팀에서 코드 컨벤션을 정하여 setter를 public으로 열어두고 사용하지 않는 방법도 있다.
반응형
'language > kotlin' 카테고리의 다른 글
kotlin - Jpa QueryDsl 다이나믹 쿼리로 where의 특정 조건 체크하기 (0) | 2023.03.02 |
---|---|
@Enumerated(EnumType.STRING) (0) | 2023.02.12 |
[JUnit5] 생성 test, 조회 test 같이 돌리면 실패하는 이유 : @AfterEach 어노테이션 활용하기 (0) | 2023.02.04 |
공지사항
최근에 올라온 글
최근에 달린 댓글
- Total
- Today
- Yesterday
링크
TAG
- Cannot construct instance of
- MongoDB
- Linux
- port
- jvm warm-up 전략
- redisson 분산락
- spring boot 3
- Git
- Spring Security
- addFilterBefore
- ChatGPT
- n+1
- array
- MultipleBagFetchException
- checkout
- Java
- 오블완
- bucket4j
- 스프링 스케줄링
- 자바 어플리케이션 실행 과정
- QueryDSL
- junit5
- JPA
- 티스토리챌린지
- 배열
- 추상클래스
- 스프링오류
- FetchJoin
- Kotlin
- dto 클래스 생성자
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | ||
6 | 7 | 8 | 9 | 10 | 11 | 12 |
13 | 14 | 15 | 16 | 17 | 18 | 19 |
20 | 21 | 22 | 23 | 24 | 25 | 26 |
27 | 28 | 29 | 30 | 31 |
글 보관함