实现Java接口 – Kotlin

刚开始使用Kotlin和我已经阅读官方文档,我正在从kotlin库中实现一个接口的问题。 这里是在java中的接口: public interface ResultCallBack { void detailsRetrieved(Obj var1, AnotherInterface var2); void anotherDataRetrieved(int var1, AnotherInterface var2); } 我从kotlin调用的方法是这样的: public static void startLibActivity(Context context, ResultCallBack callback) { sLuhnCallback = callback; context.startActivity(new Intent(context, Library.class)); } 我如何从kotlin调用startLibActivity并实现ResultCallBack 我认为我坚持这个试验: Library.startLibActivity(activity, {}) 我在{}内尝试了许多可能性,仍然存在正确实施的问题。

Kotlin和Android Databinding

Updated 21.06.2015 我想在同一个项目中尝试kotlin和android数据绑定。 但是,当我添加到kotlin gradle插件依赖我不能建立一个甚至一个空的项目了错误: 无法生成视图绑定器java.lang.NoClassDefFoundError:kotlin / jvm / internal / ExtensionFunctionImpl buildscript { repositories { jcenter() } dependencies { classpath 'com.android.tools.build:gradle:1.3.0-beta3' classpath "com.android.databinding:dataBinder:1.0-rc0" classpath "org.jetbrains.kotlin:kotlin-gradle-plugin:0.12.613" } } 任何workaroud使它一起工作?

Kotlin IllegalStateException:在类路径中找不到资源:kotlin / .kotlin_string_table

我试图在我的Android应用程序中使用Kotlin,并且无法调用扩展功能。 该应用程序立即崩溃与以下堆栈跟踪: 04-23 13:31:22.415 32606-32606/com.example.kotlin.test E/AndroidRuntime﹕ FATAL EXCEPTION: main Process: com.example.kotlin.test, PID: 32606 java.lang.ExceptionInInitializerError at org.jetbrains.kotlin.load.kotlin.reflect.RuntimeModuleData$Companion.create(RuntimeModuleData.kt:34) at kotlin.reflect.jvm.internal.InternalPackage$moduleByClassLoader$cff17278.getOrCreateModule(moduleByClassLoader.kt:54) at kotlin.reflect.jvm.internal.KClassImpl$descriptor$1.invoke(KClassImpl.kt:31) at kotlin.reflect.jvm.internal.KClassImpl$descriptor$1.invoke(KClassImpl.kt:26) at kotlin.reflect.jvm.internal.ReflectProperties$LazySoftVal.get(ReflectProperties.java:84) at kotlin.reflect.jvm.internal.KClassImpl.getDescriptor(KClassImpl.kt) at kotlin.reflect.jvm.internal.KClassImpl.getScope(KClassImpl.kt:43) at kotlin.reflect.jvm.internal.KClassImpl.getProperties(KClassImpl.kt:84) at kotlin.reflect.jvm.internal.KClassImpl.getProperties(KClassImpl.kt:72) at kotlin.reflect.ReflectPackage$KClassExtensions$6beb0f9b.getDeclaredProperties(KClassExtensions.kt:25) at kotlin.reflect.ReflectPackage.getDeclaredProperties(KClassExtensions.kt:1) at com.example.test.kotlin.api.model.DatabaseObject$$TImpl.deflate(DatabaseObject.kt:40) at com.example.test.kotlin.api.model.impl.Model.deflate(Model.kt) at com.example.test.kotlin.api.model.impl.Model.<init>(Model.kt:28) at com.example.test.kotlin.api.model.impl.TestModel.<init>(TestModel.kt:23) at com.example.app.TestModelIndexFragment.onCreate(TestModelIndexFragment.java:122) at android.support.v4.app.Fragment.performCreate(Fragment.java:1763) at android.support.v4.app.FragmentManagerImpl.moveToState(FragmentManager.java:915) at android.support.v4.app.FragmentManagerImpl.moveToState(FragmentManager.java:1136) at android.support.v4.app.BackStackRecord.run(BackStackRecord.java:739) at […]

Kotlin的Class <?> clazz

Class<?> clazz如何在Kotlin中看起来像? 我试图把这个方法翻译成Kotlin代码,好像我被卡住了。 public static boolean isServiceRunning(Context context, Class<?> serviceClass)

ArrayAdapter使用Kotlin android

对不起我的英语不好。 我学习kotlin,现在我需要写ArrayAdapter,但我有一些错误,当尝试做这个convertView = vi.inflate(resource, null) kotlin说我Val cannot be reassigned 。 在网站kotline我转换java类到kotlin类,并尝试做像这个网站。 为什么我有错,我该如何解决这个问题? open class MyAdapter(context: Context, resource: Int, list: ArrayList<MyItems>) : ArrayAdapter<MyItems>(context, resource, list) { var resource: Int var list: ArrayList<MyItems> var vi: LayoutInflater init { this.resource = resource this.list = list this.vi = context.getSystemService(Context.LAYOUT_INFLATER_SERVICE) as LayoutInflater } override fun getView(position: Int, convertView: View?, parent: […]

Kotlin:Android Studio中的gradle sync错误

将Kotlin添加到模块后,同步时出现以下错误: Error:null cannot be cast to non-null type org.jetbrains.kotlin.gradle.internal.WrappedVariantData 我添加了kotlin插件到这个项目中。 这是一个appengine模块。 我正在运行:AS 2.3.2 gradle 3.4 kotlin 1.1.2-3 使用这些插件: apply plugin: 'kotlin-kapt' apply plugin: 'kotlin' apply plugin: 'java' apply plugin: 'war' apply plugin: 'appengine' apply plugin: 'idea' 有任何想法吗?

kotlin自动文档工具

还没有找到任何kotlin自动文档工具。 像doxygen kotlin。 据我所知,没有kotlin自己的汽车文档。 所以,如果这样的工具存在,请让我们都知道。

Gson与Kotlin嵌套的类

我无法正确反序列化嵌套的Kotlin类作为与Gson正确的类型。 当我尝试反序列化相同的Java类时,它工作正常。 Java类: package example; import java.util.List; import java.util.Map; class TestJsonJava { Map<String, List<Entry>> outer; static class Entry { String inner; } } Kotlin课堂: package example class TestJsonKotlin { var outer: Map<String, List<Entry>>? = null class Entry { var inner: String? = null } } Kotlin主要: package example import com.google.gson.GsonBuilder class Main { companion object […]

RealmObject的Kotlin数据类

我正在使用Kotlin和Realm编写一个数据类 data class AuthToken(val register: Boolean, val token: String, val tokenSecret: String, val user: AuthUser) 我必须将数据保存到数据库,所以我使用Realm来保存它。 但是据我们所知,如果我想把类保存到Realm中, AuthToken类必须扩展RealmObject 。 这就是问题所在,Kotlin说数据类不能扩展类。 所以我放弃了数据类,只是使用一个普通的Kotlin类作为模型,然后又出现另一个问题: Kotlin类没有getter或setter。 正如我们所知,Realm类必须将所有属性设置为private,并写getter和setter。 现在我想知道如何解决这个问题。

Kotlin与Java的反射互操作性

在编写与Java和Kotlin兼容的反射代码时,开发人员应该注意哪些警告? 例如,我有一个使用反射的现有库,它与Java很好地协作。 但是,当我用Kotlin的时候,我的反射代码似乎没有拿起字段上的注释。 以下是我注意到的一些差异。 1.获取一个类的实例 // Example 1.1 – Java Class<?> userClass = User.class; // From a class name userClass = userInstance.getClass(); // OR from an instance 在Kotlin中获取Java类实例 // Example 1.2 – Kotlin val userClass = userInstance.javaClass // From an instance 我无法像在Java中那样在Kotlin中使用.class工具或.getClass()方法。 2.代表 当我在Kotlin类中使用委托属性时,我检索的属性具有$delegate后缀。 这与我们在Java中获得的字段有点相反(我明白Kotlin没有字段,只有属性)。 这如何影响元编程? 但是,对于代表,我发现大多数方法像在Java中一样保持其行为。 我还有什么其他的不同吗? 要使Java和Kotlin能够互操作,需要了解上面讨论的1以及Kotlin带给元编程的其他限制/差异。