为了账号安全,请及时绑定邮箱和手机立即绑定

Kotlin Arraylist 与 Java Arraylist 的类型不匹配

Kotlin Arraylist 与 Java Arraylist 的类型不匹配

慕的地8271018 2023-06-28 15:44:29
目前正在开发一个应用程序,我决定用 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()    {    }
查看完整描述

1 回答

?
繁星coding

TA贡献1797条经验 获得超4个赞

类型不同。这就像试图将 a 传递List<String>给 a List<Integer>

即尝试将“Hello”、“World”列表放入期望 1,2,3 的列表中

在 Kotlin 或 Java 中,您不能仅通过引用将一种类型强制为另一种类型。

如果我们假设 Kotlin 模块依赖于 Java 模块。

仅在 Java 模块中创建BasketItem,然后将其作为列表的类型,无论它是在 Kotlin 还是 Java 中。

var basketitems: ArrayList<BasketItem> = ArrayList()
List<BasketItem> basketItems = new ArrayList<>();


查看完整回答
反对 回复 2023-06-28
  • 1 回答
  • 0 关注
  • 163 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信