티스토리 뷰
@JvmStatic
static 하게 운용하고 싶을 때 아래와 같이 작성하면 자바로는
baz클래스에 static한 값이 생기며 baz안의 Companio. class에 getter setter가 추가됩니다.
class baz {
companion object {
var s: Int = 0
}
}
... decompile
public final class baz {
private static int s;
public static final class Companion {
public final int getS() {
return baz.s;
}
public final void setS(int var1) {
baz.s = var1;
}
private Companion() {
}
// $FF: synthetic method
public Companion(DefaultConstructorMarker $constructor_marker) {
this();
}
}
}
bazClass내에서 getter/setter가 생성되었습니다.
class baz {
companion object {
@JvmStatic var s: Int = 0
}
}
...decompile
public final class baz {
private static int s;
public static final int getS() {
Companion var10000 = Companion;
return s;
}
public static final void setS(int var0) {
Companion var10000 = Companion;
s = var0;
}
public static final class Companion {
/** @deprecated */
// $FF: synthetic method
@JvmStatic
public static void getS$annotations() {
}
public final int getS() {
return baz.s;
}
public final void setS(int var1) {
baz.s = var1;
}
private Companion() {
}
// $FF: synthetic method
public Companion(DefaultConstructorMarker $constructor_marker) {
this();
}
}
}
이는 Java 확장자 파일에서 baz.s를 접근할 때 차이가 있습니다.
@JvmStatic이 없을시 baz내의 companion class(static)의 메서드를 통해 s에 접근이 가능합니다.
baz.companion.getS();
@JvmStatic이 있을경우
baz내에 getter/ setter가 존재해
baz.getS(); 같이 접근이 가능합니다.
반응형
'Java & Kotlin' 카테고리의 다른 글
| kotlin 기본 사용법 (0) | 2022.07.16 |
|---|---|
| builder pattern 연습해보기 (0) | 2022.06.29 |
| JVM (0) | 2021.12.21 |
| 'JWT'를 'JAVA'로 만들어보기 (0) | 2021.12.21 |
| 객체 생성 디자인패턴 (0) | 2021.11.17 |
댓글
공지사항
최근에 올라온 글
최근에 달린 댓글
- Total
- Today
- Yesterday
링크
TAG
- mappedby
- 문제
- ㅃ
- 개발자채용
- 스타트업
- Spring
- springboot
- JDK8
- 다대일
- 자바
- JDK
- java8
- 스택
- jvm
- JPA
- boot
- jre
- jre8
- jre11
- jdk11
- 코딩테스트
- 관계설정
- 백준
- 알고리즘
- 백준 제로 자바
- 백엔드
- 자사서비스
- 프로그래머
- boot 일대다
- 백준 제로
| 일 | 월 | 화 | 수 | 목 | 금 | 토 |
|---|---|---|---|---|---|---|
| 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 |
글 보관함