티스토리 뷰
@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
- checkout
- 추상클래스
- spring boot 3
- 배열
- Kotlin
- Spring Security
- Linux
- n+1
- jvm warm-up 전략
- port
- FetchJoin
- MultipleBagFetchException
- Cannot construct instance of
- QueryDSL
- JPA
- junit5
- ChatGPT
- 자바 어플리케이션 실행 과정
- Java
- dto 클래스 생성자
- 오블완
- Git
- 스프링 스케줄링
- MongoDB
- array
- redisson 분산락
- addFilterBefore
- bucket4j
- 스프링오류
- 티스토리챌린지
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
글 보관함