草庐IT

asm-generic

全部标签

generics - 对泛型函数的引用

是否可以引用Kotlin中的泛型函数?例如,假设我有一个函数:funinlineappendToString(a:T,b:T)=a.toString()+b.toString你如何引用这个函数?这不会编译vara=::appendToString 最佳答案 目前不支持。但是如果您希望看到它的实现,您可以支持一个功能请求:)KT-12140 关于generics-对泛型函数的引用,我们在StackOverflow上找到一个类似的问题: https://stack

generics - 类的 Kotlin 通用边界

以下泛型无法编译。这里有什么语义错误?函数调用start(MainActivity.javaClass)//方法定义//Definitionpublicfunstart(activityClass:Class){startActivity(Intent(this,activityClass))}编译器错误Error:(43,9)TypeparameterboundforTinfunstart(activityClass:java.lang.Class):kotlin.Unitisnotsatisfied:inferredtypecom.mobsandgeeks.hellokotlin.

generics - 我们可以在 Kotlin 中使用中缀泛型方法吗?

编译器接受中缀+泛型方法,但使用它的语法是什么?例如,给定这2个相同的方法(模任意泛型):infixinlinefunInt1.plus1(i:Int1)=Int1(this.value+i.value)infixinlinefunInt1.plus2(i:Int1)=Int1(this.value+i.value)我会写:Int1(3).plus1(Int1(4))Int1(3)plus1Int1(4)Int1(3).plus2(Int1(4))但是这个调用无效:Int1(3)plus2Int1(4)谁能解释一下为什么? 最佳答案

generics - 将参数传递给具有多个上限的泛型函数

无法将参数传递给Combiner().combine()函数。AndroidStudio无法识别arg扩展了Foo并实现了Bar。我做错了什么?abstractclassFoo{valf:Int=1}interfaceBar{valb:Stringget()="a"}classCombiner{funcombine(arg:T):PairwhereT:Foo,T:Bar{returnarg.ftoarg.b}}classProgram{funmain(){vallist:List=arrayListOf()list.forEach{if(itisBar){Combiner().comb

generics - Kotlin 外投影类型禁止使用

我最近在Kotlin中尝试了以下内容。这个想法是我将接收一个扩展BaseItem的Item(例如AmericanItem)作为输入。我正在尝试为每个这些项目使用不同的解析器这是一个示例代码abstractclassBaseItemclassAmericanItem:BaseItem()classEuropeanItem:BaseItem()interfaceItemParser{funparse(item:T)}classAmericanItemParser:ItemParser{overridefunparse(item:AmericanItem){println("American

generics - Kotlin 强制可空泛型类型转换为同一泛型类型的不可空泛型?

首先我只想指出,我知道Forceanullintonon-nullabletype和KotlinGenericsandnullableClasstype但我不认为这些问题和我的一样(如果我错了,请纠正我)。背景我正在开发一个名为Awaitility的库简而言之,它旨在等待谓词评估为真。KotlinAPI提供了一种编写这样的表达式的方法://CreateasimpledataclassexampledataclassData(varvalue:String)//AfakerepositorythatreturnsapossiblynullableinstanceofDatainterfa

generics - Kotlin 实体化类型参数不智能转换

我正在尝试设置未初始化值,并试图让以下工作。这主要是对物化泛型的力量(和局限性)的好奇。我试图为数据类的可选参数提供默认值。inlinefununinitialized():T=when(T::class){Long::class->-1L//Typemismatch.Required:TFound:LongString::class->""//Typemismatch.Required:TFound:String//andsoon...else->throwUnsupportedOperationException("Nouninitializedvaluedefinedfor"+T

generics - Kotlin:覆盖子类型中的通用属性

我尝试编写一些通用代码,但无法摆脱Typeof'PROPERTY'isnotasubtypeoftheoverriddenproperty错误。我的代码的简化版:abstractclassBaseP{varview:V?=null}abstractclassBaseF{funsmth(){pp.view=this}abstractvalpp:BaseP}abstractclassSubF:BaseF(){abstractoverridevalpp:BaseP//Error:(20,30)Typeof'pp'isnotasubtypeoftheoverriddenproperty'pub

generics - Kotlin - 不尊重泛型类型参数

考虑以下示例:importkotlin.reflect.KProperty1infixfunKProperty1.test(value:R)=UnitdataclassFoo(valbar:Int)funmain(){Foo::bartest"Hello"}鉴于test期望value类型为R,为什么在这种情况下,属性类型是Int,它允许我传递一个String吗? 最佳答案 首先看一下接口(interface)的声明KProperty1,即:interfaceKProperty1:KProperty,(T)->R这里的重要部分是out

generics - 具有通用参数和使用类型参数的方法的 Kotlin 抽象类

我正在尝试创建一个带有泛型参数的抽象类,该类将具有应该调用方法的子类无需指定类型参数。到目前为止我有这个:abstractclassAbstractClass@Autowiredconstructor(protectedvaldelegate:MyService){inlinefunmyMethod(param:Any):T?{returndelegate.myMethod(param).`as`(T::class.java)}}及实现:classTesterWork@Autowiredconstructor(delegate:MyService):AbstractClass(dele