如何在jdk1.7下使用kotlin-maven-plugin?

当使用kotlin maven插件时,我得到了不受支持的major.minor版本52.0。 细节: 5721/25818 KB 19242/25818 KB 25693/25818 KB Downloaded: http://maven.aliyun.com/nexus/content/groups/public/org/jetbrains/kotlin/kotlin-compiler/1.1.2-2/kotlin-compiler-1.1.2-2.jar (25818 KB at 113.2 KB/sec) [WARNING] Error injecting: org.jetbrains.kotlin.maven.K2JVMCompileMojo java.lang.TypeNotPresentException: Type org.jetbrains.kotlin.maven.K2JVMCompileMojo not present at org.eclipse.sisu.space.URLClassSpace.loadClass(URLClassSpace.java:115) at org.eclipse.sisu.space.NamedClass.load(NamedClass.java:46) at org.eclipse.sisu.space.AbstractDeferredClass.get(AbstractDeferredClass.java:48) at com.google.inject.internal.ProviderInternalFactory.provision(ProviderInternalFactory.java:86) at com.google.inject.internal.InternalFactoryToInitializableAdapter.provision(InternalFactoryToInitializableAdapter.java:54) at com.google.inject.internal.ProviderInternalFactory$1.call(ProviderInternalFactory.java:70) at com.google.inject.internal.ProvisionListenerStackCallback$Provision.provision(ProvisionListenerStackCallback.java:113) at org.eclipse.sisu.bean.BeanScheduler$Activator.onProvision(BeanScheduler.java:176) at com.google.inject.internal.ProvisionListenerStackCallback$Provision.provision(ProvisionListenerStackCallback.java:122) at com.google.inject.internal.ProvisionListenerStackCallback.provision(ProvisionListenerStackCallback.java:68) at com.google.inject.internal.ProviderInternalFactory.circularGet(ProviderInternalFactory.java:68) at com.google.inject.internal.InternalFactoryToInitializableAdapter.get(InternalFactoryToInitializableAdapter.java:46) at com.google.inject.internal.InjectorImpl$2$1.call(InjectorImpl.java:1009) at com.google.inject.internal.InjectorImpl.callInContext(InjectorImpl.java:1059) at com.google.inject.internal.InjectorImpl$2.get(InjectorImpl.java:1005) […]

如何在运行时编译和使用Kotlin代码?

我正在尝试创建一个Kotlin Vert.x语言支持模块,我需要一种方法来编译Kotlin文件并使用ClassLoader加载结果。 我试过使用kotlin-compiler库,发现K2JVMCompiler类,但它似乎只支持命令行式的exec参数方法。 有没有办法在运行时编译Kotlin文件(可能不需要保存和读取.class文件)并立即加载生成的类? (有点像Groovy的 。)如果不是,你有任何有用的编译器参数的建议或几乎任何建议?

Kotlin Proguard规则枚举?

您好,有人可以请告诉我,如果有任何具体的规则需要科姆林类与枚举? 简单的例子 data class Passenger( var type: Type?, var id: Int, var age: Int ) { companion object { const val AGE_NOT_SET = -1 } enum class Type { ADULT, CHILD, INFANT } constructor() : this(null, 0, 0) } 如果将对象初始化为Passenger(CHILD, 123456, 4)转换为Json,然后再解析回POJO,则会导致Passenger(null, 0,0) 我有 -keepclassmembers,allowoptimization enum * { public static **[] values(); public static ** […]

如何从注释处理器生成一个kotlin文件?

我有一个java注释处理器,在编译过程中生成一堆java文件。 我想通过添加扩展方法使生成的类更好地在kotlin中使用。 我已经被告知在kotlin论坛上,我可以尝试的是写一个包含我的扩展功能的kotlin文件。 我试过这个,我用Filer对象来创建这个文件输出到StandardLocations.SOURCE_OUTPUT目录。 Intellij可以看到我生成的类,并且可以按照预期使用扩展函数,但是由于编译器无法找到新的kotlin文件,所以应用程序将无法编译。 有什么办法可以写一个新的kotlin文件,这个文件可以被kotlin编译器使用吗?

如何在我的Kotlin RecylerView适配器中传递接口并在Kotlin Activity中获得回调

这是我的KotlinRecyclerView适配器类 class ListAdapter(var c: Context, var lists: ArrayList<Employee>, itemClickListener: Any?): RecyclerView.Adapter<RecyclerView.ViewHolder>() { override fun onCreateViewHolder(parent: ViewGroup?, viewType: Int): RecyclerView.ViewHolder { var v = LayoutInflater.from(c).inflate(R.layout.list_layout, parent, false) return Item(v) } override fun onBindViewHolder(holder: RecyclerView.ViewHolder?, position: Int) { (holder as Item).bindData(lists.get(position)) } override fun getItemCount(): Int { return lists.size; } class Item(itemView: View) : RecyclerView.ViewHolder(itemView) { fun […]

Kotlin代表未来

我正在努力学习科特林,代表们既有趣又令人困惑。 我有一个情况,在一个java类中,我将构造函数arg创建一个Future(ID表示另一个系统中的资源),并将Future作为一个实例变量存储。 那么“getXXX”会调用Future.get() 这里是一个示例java类 public class Example { private Future<Foo> foo; public Example(String fooId) { this.foo = supplyAsync(() -> httpClient.get(fooId)); } public Foo getFoo() { return foo.get(); } } 我不提供Kotlin的例子,因为我不知道如何构建它。

Java如何调用kotlin扩展方法

我用kotlin写了一个扩展方法 package com.zhongan.zachat.extention import android.content.Context import android.widget.Toast /** * Created by Carl on 2016/12/1. * * */ fun Context.toastLong(msg:String) = Toast.makeText(this,msg,Toast.LENGTH_LONG).show() fun Context.toastshort(msg:String) = Toast.makeText(this,msg,Toast.LENGTH_SHORT).show() 当我在kotlin activity调用toastLong("test")是可以的。 但是在java actvity IDE中却说找不到这个方法。 如何在java代码中调用kotlin扩展方法

什么是在Anko协程kotlin推迟?

在kotlin的Anko coroutines库中,有一个特性bg()用于在后台线程上轻松地执行你的代码。 在那个返回类型是Deferred 。 那么什么是延期 ? Refrence链接 (1) https://github.com/Kotlin/kotlinx.coroutines/blob/master/kotlinx-coroutines-core/src/main/kotlin/kotlinx/coroutines/experimental/Deferred.kt (2) https://github.com/Kotlin/anko/wiki/Anko-Coroutines#bg fun getData(): Data { … } fun showData(data: Data) { … } async(UI) { val data: Deferred<Data> = bg { // Runs in background getData() } // This code is executed on the UI thread showData(data.await()) }

在新的Android Studio项目中配置Kotlin

我已经安装了kotlin插件,并在studio中创建了一个新项目。 我去过工具> Kotlin>在项目中配置Kotlin,并遵循所有的步骤,但我的gradle构建不起作用。 我得到这个错误: Error:(24, 0) Declaring custom 'clean' task when using the standard Gradle lifecycle plugins is not allowed. 打开文件 有人能告诉我什么是错的,或者告诉我为kotlin安装android studio的正确方法。 谢谢。

在Kotlin使用autoclose

在stdlib / kotlin.io中我们发现 inline fun <T : Closeable?, R> T.use(block: (T) -> R): R (source) 然而它是在Closeable上实现的,而不是在超级接口AutoCloseable上实现的。 当使用一些使用AutoCloseable的框架时,这可能有点痛苦。 为什么Kotlin不支持使用AutoCloseble?