Tag: 数据类

Kotlin数据类:如果我不知道它的名字在编译时如何读取属性的值?

如果只有在运行时才知道属性名称,我怎样才能读取Kotlin数据类实例中的属性值?

在Kotlin扩展数据类

数据类似乎是Java中老式POJO的替代品。 可以预期的是,这些类将允许继承,但我没有看到扩展数据类的方便途径。 我需要的是这样的: open data class Resource (var id: Long = 0, var location: String = "") data class Book (var isbn: String) : Resource() 上面的代码由于component1()方法的冲突而失败。 仅在其中一个类中留下data注释也不能完成这项工作。 也许还有另一个习惯用法来扩展数据类? UPD:我可能仅注释子类,但data注释只处理在构造函数中声明的属性。 也就是说,我必须宣布所有父母的属性open并覆盖它们,这很丑陋: open class Resource (open var id: Long = 0, open var location: String = "") data class Book ( override var id: Long = 0, […]

Kotlin:需要编程Kotlin数据类?

我有一个数据类定义如下 package com.mypackage.model object Model { data class News(val photo: String, val title: String, val description: String) } 当我使用Proguard(即发布版本)进行编译时,我收到并存储在模型中的数据全部为空。 他们仍然在那里即ArrayList listOfNews有预期的检索大小。 但是他们所有的内容都是空的。 调试构建这是好的。 为了解决这个问题,我使用这个proguard规则,并解决了这个问题。 -keep class com.mypackage.model.** { *; } 这是预期的吗? 即所有数据类应该被保护?

Proguard – 不要混淆Kotlin数据类

在我的项目中,我使用AutoValue来处理旧的模型类。 我开始使用Kotlin,我想使用数据类而不是AutoValue。 我想在我的数据层中禁用所有Data类的模糊处理,但要保留包中的其他类的模糊处理。 有没有办法做到这一点? 我希望在我的Proguard文件中有这样的东西: -keepclassmembers data class example.data_layer.** { *; }

Kotlin:密封类不能“包含”数据类? 为什么?

好了,现在Kotlin已经正式出来了,我又开始玩了,我很困惑,我需要在sealed和data的优点之间进行选择,但是不知道怎么样。 例如,这对我来说似乎是有道理的,但是并没有编译: sealed class Expr { data class Const(val number: Double) : Expr() data class Sum(val expr1 : Expr, val expr2 : Expr) : Expr() } 因为数据类不能扩展其他类。 有什么我失踪?

在调用Kotlin数据类中的超类构造函数之前访问函数

我使用Kotlin中的数据类来显着减少我不得不写的Java代码的数量。 但是,在我的一个Java类中,我不确定如何在Kotlin中实现相同的结果。 我的Java类看起来有点像这样: public class DataObject { private int mId; private String mName; public DataObject(int id, String name) { mId = id; mName = name; } public DataObject(Context context, int id) { mId = id; Cursor cursor = … cursor.moveToFirst(); mName = cursor.getString(…); cursor.close(); } public int getId() { return mId; } public String getName() […]

Kotlin数据类Gson序列化问题

林有点困惑我的kotlin类没有按预期工作: 用于检查更新信息的数据类: data class UpdateInfo constructor(//kotlin class val description: String, val force: Int, val platform: String, val title: String, val url: String, @SerializedName("version") val versionCode: Int = 0 ) : Serializable { val isForceUpdate = force == 1 } 还用于解码对象形式JSON的util: public class JsonUtil {//java class private static final Gson gson; static { BooleanAdapter booleanAdapter = […]

Kotlin数据类实现Java接口

我正在尝试将Kotlin引入到我目前的项目中。 我决定从实体开始,这些实体似乎完美地映射到数据类。 比如我有一个数据类: data class Video(val id: Long, val ownerId: Long, val title: String, val description: String? = null, val imgLink: String? = null, val created: Date? = null, val accessKey: String? = null, val views: Long? = null, val comments: Long? = null, val videoLink: String? = null): Entity 其中实现了Java接口: public interface Entity { […]

kotlin中数据类的等价方法

我有以下的数据类 data class PuzzleBoard(val board: IntArray) { val dimension by lazy { Math.sqrt(board.size.toDouble()).toInt() } } 我读了Kotlin中的数据类,可以免费获得equals()/ hashcode()方法。 我实例化了两个对象。 val board1 = PuzzleBoard(intArrayOf(1,2,3,4,5,6,7,8,0)) val board2 = PuzzleBoard(intArrayOf(1,2,3,4,5,6,7,8,0)) 但是下面的语句仍然返回false。 board1 == board2 board1.equals(board2)

有没有办法从一个普通的Kotlin类中识别一个Kotlin数据类?

有没有办法从一个普通的Kotlin类中识别一个Kotlin数据类? 像使用反射也许?