数据 class Kotlin 到 Java Class

Data class Kotlin to Java Class

我有一个 kotlin 数据 class,我正在尝试从 Java 方法调用它。

data class Item  (
                @PrimaryKey(autoGenerate = true) var var1: Long? ,
                @ColumnInfo(name ="var1") var var2: Long){}

从 Java 开始,我正在尝试保存项目列表,因此我需要实例化数据 class。我不明白我该怎么做。

实例化 data class 与实例化 "normal" Kotlin class.

没有什么不同

从您的 Java 代码中,您将其实例化为 Java class:

Item item = new Item(1L, 2L); 

仅供参考,data class 是自动获取以下成员的 class(参见 documentation here):

  • equals()/hashCode()对;
  • toString() 形式 "MyClass(field1=value1, field2=value2)";
  • componentN() 函数对应属性声明顺序;这对 destructuring declarations 很有用,例如:

    data class Item(val val1: Long, val val2: Long)
    
    fun main(args: Array<String>) {
        val item = Item(1L, 2L)
        val (first, second) = item
        println("$first, $second")
    }
    

    这将打印:1, 2

  • copy()函数。

您的数据 class 将是这样的:

       data class Item  (@PrimaryKey(autoGenerate = true) var var1: Long?,
            @ColumnInfo(name ="var1") var var2: Long);

从 Java 你可以像这样创建创建对象:

  Item item=new Item(1L,2L);
   long firstValue=item.getVar1();
   long secondValue=item.getVar2();

如果你想在 kotlin 中创建实例,它将是这样的:

   val item=Item(1L,2L);
    val firstValue:Long?=item.var1;
    val secondValue:Long?=item.var2;