实例字段

我们使用 @JvmField 注解对Kotlin中的属性字段标注,表示这是一个实例字段(Instance Fields),Kotlin编译器在处理的时候,将不会给这个字段生成getters/setters方法。

1. class Department {
2. var id: Long = -1L
3. var name: String = "Dept"
4. var isOpen: Boolean = true
5. var isBig: String = "Y"

7. @JvmField var NO = 0
8. }

映射成Java的代码就是:

1. public final class Department {
2. private long id = -1L;
3. @NotNull
4. private String name = "Dept";
5. private boolean isOpen = true;
6. @NotNull
7. private String isBig = "Y";
8. @JvmField
9. public int NO;

11. public final long getId() {
12. return this.id;
13. }

15. public final void setId(long var1) {
16. this.id = var1;
17. }

19. @NotNull
20. public final String getName() {
21. return this.name;
22. }

24. public final void setName(@NotNull String var1) {
25. Intrinsics.checkParameterIsNotNull(var1, "<set-?>");
26. this.name = var1;
27. }

29. public final boolean isOpen() {
30. return this.isOpen;
31. }

33. public final void setOpen(boolean var1) {
34. this.isOpen = var1;
35. }

37. @NotNull
38. public final String isBig() {
39. return this.isBig;
40. }

42. public final void setBig(@NotNull String var1) {
43. Intrinsics.checkParameterIsNotNull(var1, "<set-?>");
44. this.isBig = var1;
45. }
46. }

我们在Java中调用的时候,就直接使用这个属性实例字段NO :

1. System.out.println(d.NO = 10);