Tag: getter setter

吸毒者和安置者在Kotlin

例如,在Java中,我可以自己编写getter(由IDE生成),也可以在lombok中使用@Getter之类的Annotations – 这非常简单。 但是Kotlin 默认有getter和setter 。 但我不明白如何使用它们。 我想说的是,可以说 – 类似于Java: private val isEmpty: String get() = this.toString() //making this thing public rises an error: Getter visibility must be the same as property visibility. 那么吸气剂如何工作呢?

初始化有getter和setter的字段?

我在Kotlin创建了一个有示例字段的类 class SomeClass { var smth: String = “Initial value” get() = “Here it is” set(value) { field = “it is $value” } } 当我创建一个类的对象并调用smth字段时,它将会调用get()属性。 val myValue = SomeClass().smth// myValue = “Here it is” 所以,问题是:为什么我们必须初始化一个有getter的字段? var smth: String // Why this gives error? get() = “Here it is” set(value) { field = “it is $value” […]

设置一个字段的值,而不用调用set方法 – Kotlin

我一直在使用Kotlin在Android中开发一些应用程序,而现在我想要做的是在定义的类中设置一个字段值,而不用调用setter方法。 这里是我的课堂里的代码: var projectList: List? = null set(value) { saveProjects(value as ArrayList) field = value } //GO to the database and retrieve list of projects fun loadProjects(callback: Project.OnProjectsLoadedListener) { database.projectDao().getAll().subscribeOn(Schedulers.io()).observeOn(AndroidSchedulers.mainThread()) .subscribe( { success -> callback.onProjectsLoaded(success) //Here i don’t want to save the projects, because i’ve loaded them from the database this.projectList = success }, { […]

Kotlin数据成员可以通过kotlin默认getter和setter在java中初始化吗?

我有一个Kotlin数据成员类,默认的getter和setter: CurrentOrder.kt class CurrentOrder { private var currentOrderTime: String get() = currentOrderTime set(value){ currentOrderTime = value } private var currentOrderPrice: String get() = currentOrderPrice set(value){ currentOrderPrice = value } } 我想在java类中初始化: OrdersFragment.java 公共类OrdersFragment扩展片段{ RecyclerView recyclerView; ArrayList currentOrders; public OrdersFragment() { // Required empty public constructor } @Override public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) […]

在处理kotlin中的getter和setter时出错

我已经将数据类定义为: data class chatModel(var context:Context?) { var chatManger:ChatManager?=null //getter get() = chatManger //setter set(value) { /* execute setter logic */ chatManger = value } } 现在我将如何访问get()和set()函数。 在Java中,我喜欢://对于getter new chatModel().getJId() //对于setter new chatModel().setJId("jid") 编辑: 正如@yole所建议的那样。 我正在使用setter和getter: //设置数据 var chatDetails:chatModel=chatModel(mApplicationContext) chatDetails.chatManger=chatManager 但最终得到java.lang.StackOverflowError:at com.example.itstym.smackchat.Model.chatModel.setChatManger(chatModel.kt:38) 第38行指向 chatManger = value 这个。 @RobCo建议。 我已经将数据类定义更改为: data class chatModel(var context: Context?) { var […]

当在Kotlin中创建一个接口时,如果属性已经被设置了,那么它是否重要?

在Kotlin接口中,使用空的get / set语句声明属性是否重要? 例如… interface ExampleInterface { // These… val a: String get var b: String get set // …compared to these… val c: String var d: String } 我很难注意到一个区别。 在实现接口的时候,如果我使用属性的getter / setter,或者直接设置值,这似乎并不重要。 当通过java访问这些数据时, val的getter和var都有getter和setter。 public void javaMethod(ExampleInterface e) { e.getA(); e.getB(); e.setB(); e.getC(); e.getD(); e.setD(); }

吸毒者和安置者在Kotlin

例如,在Java中,我可以自己编写getter(由IDE生成),也可以在lombok中使用@Getter之类的Annotations – 这非常简单。 但是Kotlin 默认有getter和setter 。 但我不明白如何使用它们。 我想说的是,可以说 – 类似于Java: private val isEmpty: String get() = this.toString() //making this thing public rises an error: Getter visibility must be the same as property visibility. 那么吸气剂如何工作呢?