有没有什么办法去掉kt自动生成的getset方法?


#1

有没有什么办法去掉kt自动生成的getset方法?什么注解或者混淆配置之类的.
不明白为什么kt要加这两个方法,1会增加方法数量,2会增加些许的调用开销


#2

@JvmField 注解了解一下?


#3

有没有办法弄成全局的?一个一个设置页太费劲了


#4

我觉得对你来说,直接用 Java 定义你的类,然后把每个字段的可见性都设置成 public 比较合适

public class Person {
    public int id;
    public String name;
}

#5

我现在就是这样:joy:,但数据类型都是!的,没法便利的利用kt的判空便捷性,除非自己加null相关注解


#6

但是说实话,你不想生成 getter/setter 的这两条理由其实有点站不住脚

  1. 方法数量确实会增加,但并不会由于你这一两个类 getter/setter 多出来的这点数量而产生质的变化。就算真的达到数量限制,据我所知也有其它的解决方案。当然我不是做安卓的,没那么专业,但是社区大佬们都在安卓上用 Kotlin,可想而知这根本不是一个问题

  2. 方法调用的开销与其他地方的开销根本不在一个数量级,对比起来可以说是微乎其微,性能优化的大头从来就不在这些边边角角的地方。再说对现代 JVM 来说,频繁调用的 getter/setter 方法分分钟都会被 JIT 内联掉,跟直接读取字段没有任何区别


#7

emmm,感谢你的回答,虽然不是最完美的解决方案


京ICP备16022265号-2 Kotlin China 2017 - 2018