在kotlin中IntArray和StringArray的抽象类

时间:2018-04-20 11:04:43

标签: android arrays kotlin

是否有一个类,IntArray和StringArray都是嗜好的 我有一个函数需要作为参数所有类型的数组在fragmentadapter中使用它

class MyPagerAdapter(val fragmentManager: FragmentManager,val collection:Array):FragmentStatePagerAdapter(fragmentManager){
override fun getCount(): Int {
    Log.i("viewpager","count"+fragmentManager.fragments.size.toString())

     return collection.size
    }
}

有可能吗? 或者我会用另一种方式?

2 个答案:

答案 0 :(得分:3)

如果你想处理任何Array<T>类型,你的类应该是通用的:

class MyPagerAdapter<T>(val fragmentManager: FragmentManager, val collection: Array<T>)

原始数组包装器没有通用的超类型,但是有toTypedArray个函数或每个函数可以将它们转换为适当类型的通用数组实例,例如:

val intArray: IntArray = intArrayOf(1, 2, 3)
val typedArray: Array<Int> = intArray.toTypedArray()
MyPagerAdapter(fragmentManager, typedArray)

答案 1 :(得分:1)

如果您只需要collection.size,请传递大小。

如果您还需要其他任何内容,则无法完成并处理IntArray和其他原始数组;您需要转换为Array<T>,如@ zsmb13的答案。