Kotlin Arraylist 与 Java Arraylist 的类型不匹配

目前正在开发一个应用程序,我决定用 Kotlin 编写该应用程序。然而,应用程序与最初用 Java 编写的单独模块进行交互。


我有以下 Kotlin 数据类:


data class BasketItem(

        @SerializedName("id") var id :String ,

        @SerializedName("parentID")  var parentID: String ,

        @SerializedName("barcode")  var barcode : String ,

        @SerializedName("guid")  var guid : String ,

        @SerializedName("functionalName")  var functionalName : String ,

        @SerializedName("posPosition")  var posPosition : Int ,

        @SerializedName("itemvalue")  var itemvalue : ItemValue ,

        @SerializedName("quantity")  var quantity :Int )

{

    constructor(): this("","","","","",0,ItemValue(),0)

}



data class ItemValue(

        @SerializedName("costpriceexcl")  var costpriceexcl: Double ,

        @SerializedName("costpriceincl")  var costpriceincl :Double ,

        @SerializedName("sellingpriceExc")  var sellingpriceExc : Double ,

        @SerializedName("sellingpriceIncl")  var sellingpriceIncl : Double  ,

        @SerializedName("vatAmount")  var vatAmount : Double )

{

    constructor():this (0.0,0.0,0.0,0.0,0.0)

}


var basketitems: ArrayList<BasketItem> = ArrayList()

我试图将此 ArrayList 传递给用 java 编写的模块。我创建了具有相同参数的等效类


缩写的 java 等效类。我没有包含构造函数、getter 和 setter。


public class BasketItem

{

    public String id;

    public String parentID;

    public String barcode;

    public String guid;

    public String functionalName;

    public Integer posPosition;

    public ItemValue itemvalue ;

    public Integer  quantity ;


}



public class ItemValue

{

    private Double costpriceexcl;

    private Double costpriceincl;

    private Double sellingpriceExc;

    private Double sellingpriceIncl;

    private Double vatAmount;


    public ItemValue()

    {


    }


慕的地8271018
浏览 164回答 1
1回答

繁星coding

类型不同。这就像试图将 a 传递List<String>给 a&nbsp;List<Integer>。即尝试将“Hello”、“World”列表放入期望 1,2,3 的列表中在 Kotlin 或 Java 中,您不能仅通过引用将一种类型强制为另一种类型。如果我们假设 Kotlin 模块依赖于 Java 模块。仅在 Java 模块中创建BasketItem,然后将其作为列表的类型,无论它是在 Kotlin 还是 Java 中。var&nbsp;basketitems:&nbsp;ArrayList<BasketItem>&nbsp;=&nbsp;ArrayList() List<BasketItem>&nbsp;basketItems&nbsp;=&nbsp;new&nbsp;ArrayList<>();
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Java