给定WebSocketListener中okhttp3.ws.Java接口:
public interface WebSocketListener {
(...)
void onFailure(IOException e, Response response);
(...)
}
Kotlin假设签名如下:
override fun onFailure(e: IOException, response: Response) {
e.printStackTrace()
(...)
}
如果我现在以飞行模式启动应用程序,它会尝试连接到web套接字。web套接字无法连接,并返回对“onFailure()”的“null”响应-此时正确。但Kotlin检查响应是否为null,并在打印异常堆栈跟踪之前使我的应用程序崩溃。
那么:如何强制静态编程语言对任何未注释的内容假设为“@Nullable”?
设置应为项目范围,而不是系统范围。
谷歌上的几次搜索没有给出有用的结果。所以我想知道我是否是第一个遇到这个问题的人,Kotlin是否已经准备好使用了。
我真的需要将类转换回Java吗?
在处理没有可空性信息的java类型时,可以将其作为可空或非空类型使用。这意味着在您的情况下,您可以简单地将响应的类型更改为响应 。
override fun onFailure(e: IOException, response: Response?) {
e.printStackTrace()
(...)
}
静态编程语言
有时Java代码包含关于可空性的信息,使用注释表示。当代码中存在此信息时,Kotlin将使用它。因此,Java中的可空字符串被视为字符串 由Kotlin编写,而NotNull String就是字符串。有趣的问题是,当注释不存在时会发生什么。在这种情况下,Java类型成为Kotlin中的平台类型。
平台类型
平台类型本质上是Kotlin没有可空性信息的类型;您可以将其作为可空类型或非空类型使用。这意味着,就像在Java中一样,您对使用该类型执行的操作负有全部责任。
我正在尝试编译简单的Kotlin Gradle脚本。我已经用build创建了一个Idea项目。格拉德尔。kts包含以下内容: 它的灵感来自gradle/kotlin-dsl存储库中的复制示例,它既没有从IDE编译,也没有从终端中的gradlew编译。它给了我这些错误: 也许我缺少某种插件来包含?我该怎么做?
我对kotlin和gradle是新手,试图建立我的第一个项目: 然后得到错误消息“src\main\kotlin\main.kt:(4,4):Unresolved reference:println”。 我从http://kotlinlang.org/docs/reference/using-gradle.html复制的build.gradle文件 我希望标准库是自动包含的--或者我需要在这里添加
但是对于Java项目,和都会出现上面的文档,因为在getter中有setter JavaDoc,在setter中有getter JavaDoc。 尝试用Kotlin将两个访问器的文档分开,方法如下: 对于Kotlin和Java代码,IDE中都没有显示JavaDoc。 会很感激任何想法。
努力让Kotlin在Eclipse上运行。 如果我创建‘新科特林项目',一切都工作。 我的graddle构建脚本: 我做错了什么?
我想设置图表的数据颜色,所以我找到了MPAndroidchart,但示例是由Java制作的,而不是Kotlin。 这是我的Kotlin来源。如何更改颜色 此外,我想在条形图中的条形图下方制作标签(如第一张图片),请帮帮我。。T\u T 代码结果:
我想做这样的事情: 但不知道怎么做。有什么解决方案可以修复我下面的代码吗?