Tag: Java

Kotlin对象超类型构造器

我需要在kotlin中实现一个单例MyClass 。 要求: MyClass有超类SuperClass ,我需要调用Superclass的构造函数 我需要将一个上下文传递给MyClass并需要上下文来调用Superclass的构造函数。 MyClass是一个单身人士。 Java等价物: class MyClass extends SuperClass { // instance variable // getInstance() method MyClass(Context context) { super(context); } } 我试图解决这个object但没有得到它的工作。 有没有办法让它与一个对象的工作,或者我必须使用companion object ?

为什么Kotlin不能推断下面的lambda参数(在Java – > Kotlin转换之后)?

我有以下的Java代码: public class DatabaseManager { public interface Predicate<T> { boolean test(T t); } private interface Consumer<T> { void apply(T t); } private void updateLiveLists() { updateLiveLists(liveList -> true); } private void updateLiveLists(Predicate<MutableLiveList<?>> predicate) { forEachLiveList(liveList -> { if (predicate.test(liveList)) { refresh(liveList); } }); } private void forEachLiveList(Consumer<MutableLiveList<?>> consumer) { … } 然后我在Android Studio中使用Java -> Kotlin […]

Kotlin stdlib和Databinding

是否有可能在xml中使用Kotlin stdlib中的方法? 例如这个代码 <TextView android:layout_width="match_parent" android:layout_height="wrap_content" android:layout_marginBottom="16dp" android:textColor="#333333" android:text="@{viewModel.note}" android:visibility="@{viewModel.note.isNotEmpty ? View.VISIBLE : View.GONE}"/> 产生编译错误 执行任务失败:app:compileDevDebugJavaWithJavac'。 java.lang.RuntimeException:发现数据绑定错误。 **** / data binding error **** msg:无法在类java.lang.String文件中找到方法isNotEmpty():D:\ Projects \ PushTracker -Android \ app \ src \ main \ res \ layout \ fragment_appointment_simple_details。 xml loc:104:44 – 104:70 **** \数据绑定错误**** 很明显,数据绑定试图找到方法isNotEmpty()在Java的字符串,但我可以强制数据绑定编译器使用kotlin的字符串?

Kotlin与Java混合错误:无法找到符号

我是kotlin的新手,所以我开始克隆https://github.com/Kotlin/kotlin-koans存储库来学习这个新的languange。 我已经安装kotlin插件,并尝试与Android项目之前ray-wenderlich教程,它的工作正常(我不能发布超过2个链接呢。) 所以当我克隆kotlin-koans并尝试在第一次运行它时,我得到了: 截图 我试图在互联网上搜索。 但似乎我仍然无法找到解决方案。 这是gradle.build buildscript { ext.kotlin_version = '1.1.0' repositories { mavenCentral() } dependencies { classpath "org.jetbrains.kotlin:kotlin-gradle-plugin:$kotlin_version" } } apply plugin: 'kotlin' sourceSets { main.java.srcDirs += 'src' test.java.srcDirs += 'test' } repositories { mavenCentral() } dependencies { compile "org.jetbrains.kotlin:kotlin-stdlib:$kotlin_version" compile 'com.google.guava:guava:16.0' testCompile 'junit:junit:4.12' } 而当我使用终端运行测试时,这是发生了什么事情。 D:\kotlin-koans>gradlew test :compileKotlin e: java.lang.ClassNotFoundException: com.sun.tools.javac.util.Context at […]

如何将Java源文件的一部分转换为Kotlin?

在我的Kotlin项目中,我有一些Java代码要转换成Kotlin。 将Java文件转换为Kotlin的菜单项被禁用,因为它不是我想要转换的整个文件。 如何将Java代码转换为Kotlin?

为什么Kotlin在使用Proxy时抛出IllegalArgumentException

这是使用InvocationHandler的Java代码的Kotlin等价物: override fun invoke(proxy: Any?, method: Method?, args: Array<out Any>?): Any { println("before httprequest—>" + args) val ret = method!!.invoke(obj, args) println("after httprequest—>") return ret } Java代码: public Object invoke(Object o, Method method, Object[] args) throws Throwable { System.out.println("jdk———>http" + args); Object result=method.invoke(target, args); System.out.println("jdk———>http"); return result; } 在这两种情况下args都是null,但是如果我运行它,Kotlin代码会给Exception Exception in thread "main" java.lang.IllegalArgumentException: wrong […]

Kotlin中的一个类和一个对象之间的区别

我是Kotlin的新手,最近把一个简单的文件从java转换为Kotlin。 我想知道为什么Android转换器更改我的java类到Kotlin对象。 Java的: public class MyClass { static public int GenerateChecksumCrc16(byte bytes[]) { int crc = 0xFFFF; int temp; int crc_byte; for (byte aByte : bytes) { crc_byte = aByte; for (int bit_index = 0; bit_index < 8; bit_index++) { temp = ((crc >> 15)) ^ ((crc_byte >> 7)); crc <<= 1; crc &= 0xFFFF; […]

Intellij IDEA调试器不能用于Gradle Vert.X项目

我正在开发一个使用Gradle构建工具使用Vert.X框架的项目。 我遇到的问题是IntelliJ中的断点根本无法以我尝试过的方式工作。 这里是我在Gradle中使用的Vert.X的运行配置: run { args = [ 'run', mainVerticleName, "-conf", confPath, "–redeploy=$project.ext.watchForChange", "–launcher-class=$mainClassName", "–on-redeploy=$project.ext.doOnChange" ] } 因此,使用Gradle完成部署,运行没有任何问题, IntelliJ调试器已连接,但断点不起作用 。 我试图使其工作的方式: 1)Gradle运行配置。 以下是Intellij IDEA的运行配置: 试图使用远程调试工具,启动应用程序与以下VM选项: -agentlib:jdwp=transport=dt_socket,server=y,suspend=n,address=8000 但是这不起作用。 2)应用程序配置: 在这种情况下,我不能启动项目,因为我在启动时收到以下消息: Error: Could not find or load main class io.vertx.core.Launcher Vert.X Core库在类路径中,配置看起来是正确的,所以不能得到是的问题。 该项目的源代码是公开的,可以在GitHub上GitHub : vertx-gradle这个架构起动 Vert.X版本 – 3.4.0。 Gradle版本 – 3.4.1。 IntelliJ IDEA版本 – 2016.3.5。 OS – […]

Kotlin类文件不能在IntelliJ for JUnit中运行

我是Android和iOS开发人员。 我是新的Kotlin编程语言与IntelliJ。 Java类运行良好,但kotlin类在运行时显示错误。 首先是显示错误相关的JUnit版本。 我GOOGLE了,发现需要配置单元测试的解决方案。 我正在使用mac,所以我按下Command + Shift + T来配置单元测试。 之后,当我运行MySecondClass.kt它显示这样的错误 Information:Kotlin: kotlinc-jvm 1.1.3-2 (JRE 1.8.0_111-b14) Information:7/10/17, 8:24 PM – Compilation completed with 2 errors and 0 warnings in 2s 85ms /Users/ehaque/IdeaProjects/My First Kotlin Project/src/MySecondClassTest.kt Error:(1, 12) Kotlin: Unresolved reference: junit Error:(7, 10) Kotlin: Unresolved reference: junit 我的项目结构是这样的: 我该怎么办?

用Kotlin抛出异常

我试图将这个Java代码转换为Kotlin: public class HeaderInterceptor implements Interceptor { @Override public Response intercept(Chain chain) throws IOException { return null; } } 问题是,当我实现这些方法时,我得到了类似的东西 class JsonHeadersInterceptor : Interceptor { override fun intercept(chain: Interceptor.Chain?): Response? { throw UnsupportedOperationException() } } 我发现在Kotlin中抛出异常的唯一信息就是这个 。 删除问号的一部分,因为没有必要,为什么不以同样的方式处理IOException呢? 处理这种情况的最佳方法是什么?