关于kotlin构造函数与泛型的问题,请大家帮忙看看


#1

我想新建一个类,有一个无参主构造函数,和一个参数为泛型T的次构造函数,怎么写都报错。请大神给个实例???1551952024(1)


#2

我想实现这种形式:java代码


#3
class BaseEvent<T>(var myData: T)

#4

嗯,是这样的,我想在外部调用MessageEvent时候,直接EventConsts.MessageEvent.setData(str)…。也就是外部看起来直接传过去一个字符串或者其他类型的实例化对象。。不想MessageEvent.setData(str).。。。这样显得啰嗦。。。,所以有办法吗?就是在MessageEvent声明时候,MessAgeEvent不需要知道自己是有啥类型的数据,直接在继承的BaseEvent中添加类型,请问如何声明呢?


#5

class EventsConst{

   companion object {

       open class BaseEvent<Data> @JvmOverloads constructor(data: Data? = null) {
           var data: Data? = null

           init{
                this.data = data
           }
       }

       class StringEvent @JvmOverloads constructor(data : String? = null): BaseEvent<String>(data)
       class IntEvent @JvmOverloads constructor(data : Int? = null): BaseEvent<Int>(data)
       
       
       fun test(){
           StringEvent().data = "test"
           IntEvent().data = 0
       }
   }
}

#6

非常感谢!完美得达到我想要的效果!:muscle:


#7

mydata在这定义的是局部变量吧,所以访问不到


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