Tag: kotlin extension

Android kotlin覆盖了onCreateView()方法内的接口方法

我是Kotlin新手。 我有一个包含两个方法定义的接口: fun onSuccess(result: T) fun onFailure(e: Exception) 现在,在我的片段中,我已经实现了这个接口,并希望在里面使用这些方法: override fun onCreateView(inflater: LayoutInflater?, container: ViewGroup?, savedInstanceState: Bundle?): View? { ……………… ……………… override fun onSuccess(result: String) {} override fun onFailure(e: Exception) {} } 在Java中,我们可以使用@覆盖,但在这里我得到错误'修改'覆盖'不适用于本地功能'。 我在科特林工作了2-3天,我喜欢它。 但是有些时候小问题需要一些时间来调试。

在Kotlin脚本中用扩展方法问题

我正在尝试用于Gradle配置的Kotlin脚本。 从build.gradle.kts : val deployTest = System.getProperty("deployTest").toBoolean() 运行: gradle clean build 它适用于我的本地工作站,但在TeamCity上失败: IllegalStateException: Error type encountered: [ERROR : Type for (System.getProperty("deployTest") as String).toBoolean()] (DeferredType) 属性deployTest没有在我的工作站或TC上设置。 而在我的工作站上,它返回false 。 它出什么问题了?

Kotlin扩展功能按类型

什么是基于类型添加功能到类的惯用方式。 以下示例使用List作为类,并且Type参数<T>是列表中的对象的类。 比方说,你想要根据它们的类型用不同的比较器对这些列表进行排序。 data class A(val foo: String) data class B(val bar: Int) private val aComparator: Comparator<A> = Comparator { lhs, rhs -> rhs.foo.compareTo(lhs.foo) } private val bComparator: Comparator<B> = Comparator { lhs, rhs -> rhs.bar.compareTo(lhs.bar) } fun <T: A> List<T>.sort(): List<T> { return this.sortedWith<T>(aComparator) } fun <T: B> List<T>.sort(): List<T> { return this.sortedWith<T>(bComparator) } […]

为什么Kotlin不让我使用writeText扩展名?

我有一个方法的Kotlin类,创建一些文本,然后我想把它写入一个文件: import java.io.File import java.util.* import kotlin.io.* class MyClass { fun run() { val result = html { head { title { +"Entry page" } } body { h1 { +"Map" } +"Some HTML code" } } File("target/wdef/index.html").writeText(result) } } 我得到一个错误 – 的writeText(result)突出显示红色,我得到错误消息Error:(26, 40) Kotlin: Unresolved reference: writeText 。 我该如何解决?

Kotlin扩展函数与成员函数?

我知道在Kotlin中使用扩展函数来扩展类的功能(例如,来自库或API)。 但是,通过使用扩展功能,在代码可读性/结构方面是否有任何优势: class Foo { … } fun Foo.bar() { // Some stuff } 与成员职能相反: class Foo { … fun bar() { // Some stuff } } ? 有推荐的做法吗?

Android工作室插件ID:'kotlin-android-extensions'

我正在使用gradle,并且正在尝试将kotlin添加到我的项目中。 但是当我试图为gradle添加“kotlin-android-extensions”插件时,它无法找到它。

我想将我的kotlin版本添加到gradel项目中

当我在kotlin中创建一个新的gradel项目并在我的项目级别gradel中添加maven {url“ https://dl.bintary.com/kotlin/kotlin-eap-1.1 ”}这个url并下载zip文件后,我是选择工具工具窗口-gradel …并试图添加一个zip文件,然后它不添加…这么简单,我只是想添加我的kotlin版本到该gradel窗口,以便我能够运行该gradle项目请记住我对这个kotlin语言很新,所以我不知道这个。

如何组织Kotlin扩展方法

假设我有一些“MyClass”的扩展方法。 我的问题是,组织/存储这些方法的最佳做法是什么? 他们应该简单地放入一个“MyClassExtensions”Kotlin文件? 我试图将这些方法封装在一个类中,但是在导入类之后,我似乎无法弄清楚如何使用/访问扩展方法。 编辑:澄清,我没有要求帮助什么来调用包含扩展方法的文件。 我在询问最佳实践/方法来存储/组织这些方法。 IE浏览器。 应该将它们简单地放入kotlin文件中,还是将它们封装在一个类中。 我来自Java的背景,所以我习惯在类中存储的东西。

在Kotlin编程语言中循环

在我的科特林代码,我得到类型不匹配(推断类型是INT,但布尔是预期的)错误。 fun main(args: Array<String>) { var i = args.size while (i–){ println(args[i]) } }

任何如何在Maven依赖关系中启用Kotlin扩展函数的例子?

我开始使用Kotlin,现在尝试使用Kotlin-JDBC示例( https://github.com/kotlin-projects/kotlin-jdbc ),并将以下依赖项添加到我的Kotlin / Maven项目中: <dependency> <groupId>org.jetbrains.kotlin</groupId> <artifactId>kotlin-jdbc</artifactId> <version>0.14.451</version> </dependency> 但是,IntelliJ中没有任何扩展函数: val dataSource : DataSource = JdbcConnectionPool.create("jdbc:h2:mem:KotlinJdbcTest;DB_CLOSE_DELAY=-1", "user", "password") if ( dataSource != null ) { dataSource.update("create table foo (id int primary key, name varchar(100))") } “更新”在我的IDE中显示为红色。 任何想法如何解决这个问题?