kotlin调用java出现了这个问题


#1

这是java中定义的
public void setFragments(F[]titles, Listfragments)

这是在kotlin中调用
adapter!!.setFragments(resources.getStringArray(R.array.finds),fragments)

编译报这个错误
Type mismatch.

Required:

(Nothing…Array<out Nothing!>?)

Found:

Array<(out) String!>!

Projected type BaseTabFragmentAdapter<*, *> restricts use of public open fun setFragments(titles: Array<(out) F!>!, fragments: (Mutable)List<T!>!): Unit defined in com.jh.basesupport.view.adapter.BaseTabFragmentAdapter
如何不改java基础库,解决这个报错问题


#2

BaseTabFragmentAdapter<*, *>

不要用*,换成实例的类型


#3

谢谢大佬,解决了,确实是这样


京ICP备16022265号-2 Kotlin China 2017 - 2018