目前正在开发一个应用程序,我决定用 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<>();
添加回答
举报
0/150
提交
取消