2017-09-29 91 views
0

我一直在写在那里我第一次声明的类签名如下如何在构造函数中定义类属性时编写自定义getter?

data class MClass(val id: Int = 0,val descr: String, val timestamp: Long) 

现在需要被创造,我必须对上述字段的自定义吸气的应用程序。我如何编写这个自定义getter?我知道,如果不是的话我可以写类似

data class(){ 
    val id=0 
    val descr = "" 
    get() = descr + "append smth" 

    val timestamp:Long = 0 

} 

回答

3

你可以做类似如下:

data class MClass(val id: Int = 0, private val descr: String, val timestamp: Long) { 
    val description: String 
     get() = descr + "append smth" 
} 
+0

是,但现在不是我复制descr字段? – Libathos

+0

@Libathos不,注意descr现在是私人的,所以使用我的例子,你将访问propety调用MClass.description,这是一个不同的值,具有不同的值 – AlexTa

+0

伟大没有注意到私人部分。谢谢,最后我只是想确定一下,我的自定义getter不能有任何争论,是对的吗? – Libathos

1

你可以把它像:

data class MClass(val id: Int = 0, private val _descr: String, val timestamp: Long) { 
    val descr: String 
     get() = _descr + "append something" 
} 
相关问题