草庐IT

kotlin.notimplementederror

全部标签

kotlin - Kotlin 中的 Setter 重载

当试图定义一个接受可用于构造属性的参数类型的setter时,因此:classBuffer(buf:String){}classFoo{varbuffer:Buffer?=nullset(value:String){field=Buffer(value)}}我收到错误消息:Setterparametertypemustbeequaltothetypeoftheproperty那么Kotlin的这种做法是什么意思? 最佳答案 从Kotlin1.1开始,无法重载属性setter。此处跟踪功能请求:https://youtrack.jetb

kotlin - Kotlin 中的 Setter 重载

当试图定义一个接受可用于构造属性的参数类型的setter时,因此:classBuffer(buf:String){}classFoo{varbuffer:Buffer?=nullset(value:String){field=Buffer(value)}}我收到错误消息:Setterparametertypemustbeequaltothetypeoftheproperty那么Kotlin的这种做法是什么意思? 最佳答案 从Kotlin1.1开始,无法重载属性setter。此处跟踪功能请求:https://youtrack.jetb

java - Kotlin - 不能使用 'T' 作为具体类型参数。改用一个类

我有一个简单的辅助函数来从SharedPreferences中获取值(value),如下所示:operatorinlinefunSharedPreferences.get(key:String,defaultValue:T?=null):T?{returnwhen(T::class){String::class->getString(key,defaultValueas?String)asT?Int::class->getInt(key,defaultValueas?Int?:-1)asT?Boolean::class->getBoolean(key,defaultValueas?Bo

java - Kotlin - 不能使用 'T' 作为具体类型参数。改用一个类

我有一个简单的辅助函数来从SharedPreferences中获取值(value),如下所示:operatorinlinefunSharedPreferences.get(key:String,defaultValue:T?=null):T?{returnwhen(T::class){String::class->getString(key,defaultValueas?String)asT?Int::class->getInt(key,defaultValueas?Int?:-1)asT?Boolean::class->getBoolean(key,defaultValueas?Bo

Java 到 Kotlin 转换器和可为空的方法参数

我有一个案例,Java到Kotlin的转换器因为没有将方法参数标记为可为空而使我悲惨地失败了。示例:使用registerActivityLifecycleCallbacks跟踪Activity生命周期:registerActivityLifecycleCallbacks(newActivityLifecycleCallbacks(){@OverridepublicvoidonActivityCreated(Activityactivity,BundlesavedInstanceState){}@OverridepublicvoidonActivityStarted(Activityac

Java 到 Kotlin 转换器和可为空的方法参数

我有一个案例,Java到Kotlin的转换器因为没有将方法参数标记为可为空而使我悲惨地失败了。示例:使用registerActivityLifecycleCallbacks跟踪Activity生命周期:registerActivityLifecycleCallbacks(newActivityLifecycleCallbacks(){@OverridepublicvoidonActivityCreated(Activityactivity,BundlesavedInstanceState){}@OverridepublicvoidonActivityStarted(Activityac

java - 如何在 Kotlin 中实现模板方法设计模式?

考虑问题:我们有一个带有抽象方法的Base类。现在,我们希望强制执行此方法的每个覆盖都将执行一些参数检查或其他一些苦差事。我们希望这个参数检查在所有覆盖中都是相同的。一种解决方案是将此行为包装在调用抽象方法的非抽象方法中:abstractclassBase{funcomputeSomething(argument:Int):Int{require(argument>0)//Someintricatecheckingreturnexecute(argument)}//Purefunctionality,assumingcorrectarguments//Ideally,thiswould

java - 如何在 Kotlin 中实现模板方法设计模式?

考虑问题:我们有一个带有抽象方法的Base类。现在,我们希望强制执行此方法的每个覆盖都将执行一些参数检查或其他一些苦差事。我们希望这个参数检查在所有覆盖中都是相同的。一种解决方案是将此行为包装在调用抽象方法的非抽象方法中:abstractclassBase{funcomputeSomething(argument:Int):Int{require(argument>0)//Someintricatecheckingreturnexecute(argument)}//Purefunctionality,assumingcorrectarguments//Ideally,thiswould

kotlin - 伴生对象比普通对象有什么优势?

Kotlin代码如下:classFoo{companionobject{funa():Int=1}funb()=a()+1}可以简单地改成objectFooStatic{funa():Int=1}classFoo{funb()=FooStatic.a()}我知道伴生对象可以用作真正的java静态函数,但是使用伴生对象还有其他优点吗? 最佳答案 主要区别之一是成员的可见性。在伴随对象中,包含类的可见性就像成员是类的一部分一样-对于原始对象而言并非如此。下面的例子表明你不能使用“对象”来实现类的私有(private)静态内部。packa

kotlin - 伴生对象比普通对象有什么优势?

Kotlin代码如下:classFoo{companionobject{funa():Int=1}funb()=a()+1}可以简单地改成objectFooStatic{funa():Int=1}classFoo{funb()=FooStatic.a()}我知道伴生对象可以用作真正的java静态函数,但是使用伴生对象还有其他优点吗? 最佳答案 主要区别之一是成员的可见性。在伴随对象中,包含类的可见性就像成员是类的一部分一样-对于原始对象而言并非如此。下面的例子表明你不能使用“对象”来实现类的私有(private)静态内部。packa