【问题标题】:Abstract class for IntArray and StringArray in kotlinkotlin 中数组和字符串数组的抽象类
【发布时间】:2018-04-20 11:04:43
【问题描述】:

是否有一个 IntArray abd StringArray 都继承自的类 我有一个函数需要所有类型的数组作为参数才能在片段适配器中使用它

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
    }
}

有可能吗? 还是我会用其他方式?

【问题讨论】:

    标签: android arrays kotlin


    【解决方案1】:

    如果你想处理任何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)
    

    【讨论】:

    • 精心制作。
    • 这就是我需要的原因
    【解决方案2】:

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

    如果你还需要什么,不能通用,处理IntArray等原始数组;您需要转换为Array&lt;T&gt;,如@zsmb13 的回答。

    【讨论】:

    • 我需要数组的所有内容,而不仅仅是大小,所以我认为使用泛型类是正确的方法
    猜你喜欢
    • 2018-07-30
    • 2019-04-05
    • 2018-05-03
    • 1970-01-01
    • 2019-06-06
    • 1970-01-01
    • 2013-04-15
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多