Java注释在Kotlin项目jar中不可用

我正在研究从Java转移到Kotlin的库。 由于这两个项目仍然与两种语言混合使用,所以我使用了https://kotlinlang.org/docs/reference/using-maven.html中描述的kotlin-maven-plugin和maven-compiler-plugin。 Kotlin版本是1.2.10。 我需要在库中创建一个注释,这个注释将被用在其他项目中。 注释是一个标准的Java,我可以建立我的图书馆。 @Target(ElementType.TYPE) @Retention(RetentionPolicy.RUNTIME) @Documented public @interface EnableSomeBehavior { } 当我在另一个项目(一个Java项目)中导入库时,我可以看到注释。 在我的IDE(IntelliJ)自动完成实际上提出我注释..但由于某种原因,无法导入它:当我validation自动完成的选择,然后我得到一个编译错误“无法解析符号”EnableSomeBehavior ‘“。 这是相当令人费解的..我已经重建了几次(万一瓶子被损坏),但是没有任何改变。 我怀疑这是与Kotlin / Java库编译和/或打包的方式有关.Java标注在jar中,我可以看到它,在某种程度上,IDE也可以看到它,因为它提出了它。 但不知何故,它无法使用它。 这不是一个IDE问题,因为即使使用Maven从命令行进行编译失败也会出现相同的错误。 任何想法可能是什么问题? 谢谢

Android中的文字闪烁着最简洁的Kotlin

我需要使一些文本(目前在TextView )闪烁几秒钟。 关于如何在java中这样做有几个答案,但是因为Kotlin有一些java不支持的语法/语言特性,所以我在问什么是使用Kotlin在Android上使文本闪烁的最简洁的方法。 虽然我的目标是做一个平淡无奇的眨眼,但是我也接受这样的做法。 请注意,我也在考虑轻量级代码性能。 感谢您的回答!

在另一个模块的function模块中找不到Kotlin类

使用另一个function模块的com.android.feature插件在模块中找不到Kotlin类。 例如,在Android即时应用程序中,“基本”function中的Kotlin类不能从任何function模块引用。 Gradle版本:4.0-20170417000025 + 0000-全部 Android插件版本:3.0.0-alpha3 模块编译Sdk版本:25 模块构建工具版本:26.0.0 Android SDK工具版本:26.0.2 Kotlin版本:1.1.2-5

正确实施Kotlin的等待和通知

根据这个文件,使用wait和notify在Kotlin中是不鼓励的: https : //kotlinlang.org/docs/reference/java-interop.html 等待()/通知() 有效的Java Item 69建议优先使用并发实用程序wait()和notify()。 因此,这些方法在Anytypes的引用上不可用。 但是文件并没有提出任何正确的方法。 基本上,我想实现一个服务,它将读取输入数据并处理它们。 如果没有输入数据,它会暂停自己,直到有人通知有新的输入数据。 就像是 while (true) { val data = fetchData() processData(data) if (data.isEmpty()) { wait() } } 编辑: 我不想使用这些不推荐的方法(反模式),我真的想找出如何正确地做到这一点。 在我的情况下, fetchData从数据库读取数据,所以在我的情况下队列不能使用。

避免Kotlin运行时/ stdlib与其他插件冲突

我正在开发一个用Java编写的平台的插件。 这要求我将Kotlin运行时和stdlib绑定到我的插件的jar文件中,因为平台不提供。 我面临的问题是与其他插件的潜在冲突,这些插件可能还会绑定Kotlin运行时和stdlib,导致冲突。 我想到的一个可能的解决方案是将自己的包装下的runtime / stdlib捆绑在一起,但是我不知道这是否可行,或者我会怎么做。 我正在使用Gradle来编译插件,所以提供的任何解决方案都必须使用它。 任何帮助表示赞赏。

了解Kotlin中的物化和通配符如何工作

如果问题的题目不是很重要,我很抱歉,但是我还没有find更好的方法来描述这个问题。 我正在为Hadoop编写一些Kotlin扩展方法,昨天我列出了一个我不明白的奇怪错误。 我写了几个这样的扩展方法: inline fun <reified T : InputFormat, reified K : Mapper> Job.addMultipleInputPath(path: Path) { MultipleInputs.addInputPath(this, path, T::class.java, K::class.java) } inline fun <reified T : OutputFormat, reified Key : Any, reified Value : Any> Job.addMultipleNamedOutput(namedOutput: String) { MultipleOutputs.addNamedOutput(this, namedOutput, T::class.java, Key::class.java, Value::class.java) } inline fun <reified T : Mapper, reified KeyClass : Any, reified […]

Kotlin数据类包含开放函数

我正在读kotlin官方教程,在数据课题下 ,我提出了一个以下的观点。 如果超types具有打开并返回兼容types的componentN()函数,则将为数据类生成相应的函数并覆盖超types的函数。 如果超types的function由于不兼容的签名或者是最终的而不能被覆盖,则报告错误; 我的问题是, 1)什么是componentN()函数? 2)数据类是否自动覆盖打开的函数? 3)以下代码是否正确? open class SuperDataClass { open fun componentN() { println(“from super class”) } } data class DataClassExample (var name: String): SuperDataClass() { // }

数据绑定validation器错误,由Ilhasoft + Kotlin

我试图用Kotlin使用Android库“Ilhasoft数据绑定validation器” ,但我得到这个错误:未解决的参考:validation。 这是我的根build.gradle: buildscript { ext.kotlin_version = ‘1.1.60’ ext.android_plugin_version = ‘3.0.0’ ext.data_binding_validator_verson = ‘1.0.0’ repositories { jcenter() google() } dependencies { classpath ‘com.android.tools.build:gradle:3.0.0’ classpath “org.jetbrains.kotlin:kotlin-gradle-plugin:$kotlin_version” } } allprojects { repositories { jcenter() maven { url ‘https://jitpack.io’ } } } task clean(type: Delete) { delete rootProject.buildDir } 这是我的APP build.gradle: apply plugin: ‘com.android.application’ apply plugin: ‘kotlin-android’ apply […]

从Kotlin代码修改json API

我是Kotlin的初学者,最近我学习了如何从json API 获取数据。 现在,我想知道如何将数据设置到API,例如,这里是我的API: { “username”: “Empty” “age”: 20 } 这是我的class级: @Parcel class Data { val username = “” val age = 0L fun loadFromJson(json: JsonObject) { username = readString(json, TAG_USERNAME) age = readLong(json, TAG_AGE) } companion object { private const val TAG_USERNAME = “username” private const val TAG_AGE = “age” } } 我正在寻找一个函数,它将采取一个数据类的参数,并会做类似的事情 json.set(data, […]

Kotlin和Spring Data JPA产生PropertyReferenceException

我目前正在使用Spring Data JPA的Kotlin 1.2和Spring Boot 2.0 M7。 在这个项目中,我正在使用一个自定义的基础知识库,而不是JPARepository或PagingAndSortingRepository(实际上并不重要) 这里是基础接口 @NoRepositoryBean interface BaseRepository : Repository { fun save(entity: S): S fun findOne(id: ID): T? fun findAll(): List fun count(): Long } 这里是实际的存储库 interface ArticleRepository : BaseRepository { } 最后这里是文章数据类 @Entity @Table(name = “article”) @Cacheable data class Article ( @Id @GeneratedValue(strategy = IDENTITY) @Column(name = “id”, unique […]