Sangmin Lee
04/12/2022, 2:51 AM@RestController
class TestController {
@GetMapping("/test")
fun test() {
val data = TestData(bar = "first")
data.bar = "second"
data.setBar("third")
}
}
data class TestData(
@JvmField
var bar: String
) {
fun getBar() = bar
fun setBar(value: String) {
print("\nSetter is called! - value: $value\n")
bar = value
}
}
output:
Setter is called! - value: thirdwhy
data.bar = "second"
doesn’t call setBar?public final class TestData {
@JvmField
@NotNull
public String bar;
@NotNull
public final String getBar() {
return this.bar;
}
public final void setBar(@NotNull String value) {
Intrinsics.checkNotNullParameter(value, "value");
String var2 = "\nSetter is called! - value: " + value + '\n';
System.out.print(var2);
this.bar = value;
}
public TestData(@NotNull String bar) {
Intrinsics.checkNotNullParameter(bar, "bar");
super();
this.bar = bar;
}
@NotNull
public final String component1() {
return this.bar;
}
@NotNull
public final TestData copy(@NotNull String bar) {
Intrinsics.checkNotNullParameter(bar, "bar");
return new TestData(bar);
}
// $FF: synthetic method
public static TestData copy$default(TestData var0, String var1, int var2, Object var3) {
if ((var2 & 1) != 0) {
var1 = var0.bar;
}
return var0.copy(var1);
}
@NotNull
public String toString() {
return "TestData(bar=" + this.bar + ")";
}
public int hashCode() {
String var10000 = this.bar;
return var10000 != null ? var10000.hashCode() : 0;
}
public boolean equals(@Nullable Object var1) {
if (this != var1) {
if (var1 instanceof TestData) {
TestData var2 = (TestData)var1;
if (Intrinsics.areEqual(this.bar, var2.bar)) {
return true;
}
}
return false;
} else {
return true;
}
}
}
Richard Gomez
04/12/2022, 2:54 AMSangmin Lee
04/12/2022, 2:57 AMDALDEI
07/02/2022, 7:55 AMdata class TestData( private var _bar : String ) {
var bar : String
get() = _bar
set(value) { _bar = value }
}
or (losing the features of data class)
class TestData( _bar : String ) {
var bar : String = _bar
get() = field
set(value) { field = value }
}