티스토리 뷰
@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
- jre8
- springboot
- 스택
- 자바
- JDK
- java8
- 관계설정
- jre11
- 개발자채용
- JPA
- 백준
- mappedby
- boot
- 자사서비스
- jvm
- ㅃ
- 문제
- JDK8
- 백준 제로
- jdk11
- 스타트업
- boot 일대다
- 프로그래머
- Spring
- 백준 제로 자바
- 코딩테스트
- 백엔드
- 알고리즘
- jre
- 다대일
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
글 보관함