iex
04/22/2020, 9:22 AMvalue
used in it should be publicly readable:
@Parcelize
data class UnixTime private constructor(value: Long) : Parcelable {
companion object {
fun fromValue(value: Long): UnixTime =
UnixTime(value)
fun minTimestamp(): UnixTime =
UnixTime(0)
fun now(): UnixTime =
UnixTime(Date().time / 1000)
}
}
fun UnixTime.debugString() =
"$value, ${toDate()}"
fun UnixTime.toDate() =
Date(value * 1000)
This doesn't compile, and has also a warning in private
. How do I implement it correctly?diesieben07
04/22/2020, 9:25 AMcopy
method. Why do you not want a public constructor, if all fromValue
does is call it directly anyways?Kroppeb
04/22/2020, 9:30 AMdata
and just implement equals
and hashcode
iex
04/22/2020, 10:49 AMdiesieben07
04/22/2020, 10:50 AMdiesieben07
04/22/2020, 10:50 AMcopy
method.iex
04/22/2020, 10:50 AMiex
04/22/2020, 10:50 AMdiesieben07
04/22/2020, 10:51 AMdiesieben07
04/22/2020, 10:51 AMdata class
.iex
04/22/2020, 10:51 AMiex
04/22/2020, 10:51 AMdiesieben07
04/22/2020, 10:52 AMKroppeb
04/22/2020, 10:52 AMKroppeb
04/22/2020, 10:52 AMiex
04/22/2020, 10:52 AMKroppeb
04/22/2020, 10:52 AMiex
04/22/2020, 10:53 AMoverride fun equals(other: Any?): Boolean {
if (this === other) return true
if (javaClass != other?.javaClass) return false
other as UnixTime
if (value != other.value) return false
return true
}
Kroppeb
04/22/2020, 10:53 AMdiesieben07
04/22/2020, 10:53 AMiex
04/22/2020, 10:54 AMvalue == (other as? UnixTime)?.value
diesieben07
04/22/2020, 10:55 AMreturn other is UnixTime && this.value == other.value
iex
04/22/2020, 10:55 AMdiesieben07
04/22/2020, 10:55 AMvalue
is nullable.iex
04/22/2020, 10:56 AMtrue
if value
is null and other
is null, right?diesieben07
04/22/2020, 10:57 AMiex
04/22/2020, 10:57 AMnull == null
is true though)iex
04/22/2020, 10:57 AMdiesieben07
04/22/2020, 10:57 AMother
is not an instance of UnixTime
iex
04/22/2020, 10:57 AMiex
04/22/2020, 10:58 AM