Tag: jvm

CORUTTINE_SUSPENDED和suspendCoroutineOrReturn在Kotlin

kotlin中的协程的概念是抽象暂停和回调的概念,并写出简单的顺序代码。 如果协程暂停或不在线,则无需担心,与线程类似。 suspendCoroutineOrReturn和COROUTINE_SUSPENDED的用途是什么,在什么情况下你会使用它们?

如何使用kotlinpoet生成带有单个types参数的Kotlin“Unit”types的构造函数参数?

这可能是有点太具体张贴在这里,但我想用kotlinpoet生成这样的类: class Query(val onSuccess: (E) -> Unit, val onError: (Int, String) -> Unit = { i, m -> }) 我将如何使用kotlinpoet创建该types/构造函数参数? 文档确实有“ Unit ”types与原始types一起列出,所以它似乎是一个特例。

将kotlin代码编译为JVM和JavaScript

我真的很喜欢编写一个框架的想法,然后能够将其编译为jvm字节代码以及用于Web的JavaScript使用。 这是目前可能与kotlin编译器?

Kotlin访问Java类

为什么在Kotlin中,你需要访问它们使用的对象的Java类 MyActivity::class.java 我被告知与Kotlin与JS的互操作性…有什么想法?

@Throws在目标是属性时不起作用

在看这个问题的时候 ,我注意到将@Throws应用到get或set use-site没有任何作用。 此外, @Throws 的唯一有效目标是AnnotationTarget.FUNCTION , AnnotationTarget.PROPERTY_GETTER , AnnotationTarget.PROPERTY_SETTER和AnnotationTarget.CONSTRUCTOR 。 其他注释,如JPA批注和Deprecated工作正常,并适用于该方法! 这是奇怪的行为。 为了演示,我用Java创建了一个简单的抽象类,有一个构造函数,一个方法和一个get方法。 public abstract class JavaAbstractClass { @Deprecated @NotNull public abstract String getString() throws IOException; public abstract void setString(@NotNull String string) throws IOException; public abstract void throwsFunction() throws IOException; public JavaAbstractClass() throws IOException { } } 正如你所看到的,每个方法/构造函数都被标记为抛出IOException 。 但是,当我尝试在Kotlin中编写一个等同的类,并用互斥标记相应的方法时,生成的getString和setString方法没有throws子句。 abstract class KotlinAbstractClass @Throws(IOException::class) […]

我怎样才能在Kotlin中得到一个随机数字?

一个generics的方法,可以返回一个随机整数之间的2个参数,如ruby与rand(0..n) 。 任何建议?

引用实现两个或更多给定接口的任何类的对象

给定任何接口I ,可以声明一个variables来保存对实现I的类C任何对象的引用: I i = new C(); 我想要做类似的事情。 给定两个接口,我想声明一个variables,该variables持有对实现这两个接口的类的任何对象的引用: interface Foo { void foo(); } interface Bar { void bar(); } class Humpty implements Foo, Bar { public void foo() { System.out.println(“Humpty.foo()”); } public void bar() { System.out.println(“Humpty.bar()”); } } class Dumpty implements Foo, Bar { public void foo() { System.out.println(“Dumpty.foo()”); } public void bar() […]

与Java SAM没有2.12 M2标志的Scala互操作

有没有使用Java @FunctionalInterface / SAM / lambdaexpression式的Java-8 API编写Scala代码的公认技巧? 虽然Java lambdaexpression式inter-op在M2 http://www.scala-lang.org/news/2.12.0-M2中的一个标志下是可用的,但我更希望类/ AnyVal解决方案可能与scala一起工作functionX特点。 不幸的是,scala.FunctionX扩展AnyRef而不是Any,所以不能使用/混合这些特性到隐式的AnyVal类实现中。 补充:我不完全确定,即使scala.FunctionX是全球特征(从任何延伸)我如何实现我的目标。 我的用例是这样的: 在我的一个项目中,我选择了像Java Stream接口和类一样提供一个带有FunctionalInterfaces的Java-8 API,以便迎合尽可能广泛的基于JVM的客户端语言,例如Closure,Scala和Kotlin。 对于使用我的Java-8 API的每种客户端语言,如果在访问Java-8 API时,我将编写适当的绑定(如果需要的话)以使用特定于语言的习惯用法。 顺便说一句。 我也会对在Kotlin-Java互操作环境中提出的这个问题的任何评论感兴趣。

Kotlin(JVM)标准库元素的未解决参考

在IntelliJ添加gradle到现有的Kotlin项目之后,我开始引用一些标准库元素的问题。 例如,Kotlin Stringtypes被识别,但mutableMapOf给我 Error:(11, 60) Kotlin: Unresolved reference: mutableMapOf 另一个是: Error:(9, 78) Kotlin: Unresolved reference: Array 编译期间。 它们在IDE中也被标记为红色(不是孤立的,只能编译) 在IntelliJ中出现的另一个错误是Kotlin not configured ,没有配置Kotlin选项 这是我的gradle构建文件: apply plugin: ‘kotlin’ group = “com.serguei.myproject” version = “1.0” buildscript { ext.kotlin_version = ‘1.2.10’ repositories { mavenCentral() } dependencies { classpath “org.jetbrains.kotlin:kotlin-gradle-plugin:$kotlin_version” } } repositories { mavenCentral() } dependencies { compile “org.jetbrains.kotlin:kotlin-stdlib-jdk8:$kotlin_version” […]

如何区分绑定的可调用成员引用和kotlin中相同types的函数?

当涉及方法签名或定义时,是否有任何区分的方法 users().indexOn(User::id) 和 users().indexOn { it.id() } ? 也就是说,要指定绑定成员引用是必需的,而不是函数实例,反之亦然。 以上是上面例子的签名: fun indexOn(function: (T) -> U): List 在同样的说明,是否有可能区分构造函数引用和返回一个types的函数? 例如, query(::SomeLookup)与query { SomeLookup(args) } (如果可能,不包含kotlin.reflect)