草庐IT

Kotlin-script

全部标签

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

ssl - 无需证书验证即可进行 httpS 连接的 kotlin 库(如 curl --insecure)

我需要抓取已过期/自签名证书的内部公司网站。没有人会为该主机配置有效证书,所以我必须使用不安全的连接。curl具有用于此目的的--insecure标志,Scalafinagle库具有.tlsWithoutValidation()模式。问题:是否有具有类似选项的Kotlin库?UPD:目前我使用的是Fuel找到了javish的解决方法here但仍在寻找更好的方法..funuseInsecureSSL(){//CreateatrustmanagerthatdoesnotvalidatecertificatechainsvaltrustAllCerts=arrayOf(object:X509

ssl - 无需证书验证即可进行 httpS 连接的 kotlin 库(如 curl --insecure)

我需要抓取已过期/自签名证书的内部公司网站。没有人会为该主机配置有效证书,所以我必须使用不安全的连接。curl具有用于此目的的--insecure标志,Scalafinagle库具有.tlsWithoutValidation()模式。问题:是否有具有类似选项的Kotlin库?UPD:目前我使用的是Fuel找到了javish的解决方法here但仍在寻找更好的方法..funuseInsecureSSL(){//CreateatrustmanagerthatdoesnotvalidatecertificatechainsvaltrustAllCerts=arrayOf(object:X509

kotlin - 在 Kotlin Set 接口(interface)中调用 add 方法时 Unresolved 引用错误

如果我使用Set接口(interface)引用并尝试调用add方法,则会收到Unresolved引用错误:funmain(args:Array){valset=HashSet()set.add(Integer(1))//OKvalseti:Set=HashSet()seti.add(Integer(2))//FAILING:Unresolvedreferencetoadd**}我不明白这种行为。JavaSet接口(interface)有一个add方法,我希望Kotlin接口(interface)是一个扩展版本,而不是更少的方法。PD1:我在IdeaIDE或使用gradle构建时遇到同样