Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/kotlin/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何将带有空条件检查的java代码转换为Kotlin_Java_Kotlin - Fatal编程技术网

如何将带有空条件检查的java代码转换为Kotlin

如何将带有空条件检查的java代码转换为Kotlin,java,kotlin,Java,Kotlin,最近,我试图将一个Java代码片段转换成Kotlin。在这段代码中,我有一个特殊的需求,只有在满足某些条件时才初始化一个对象,如果不需要初始化它,我不知道如何获得初始化的副作用(获取一个空的新文件)。 但是Kotlin不允许没有初始化。 有人有办法解决这个问题吗?谢谢 Java代码 我尝试过的Kotlin代码: 还有这个 问题在于: var fos: FileOutputStream?; …就是你没有初始化任何东西。(Java也会以同样的方式抱怨未初始化的类型。) 您可以简单地将其初始化为nu

最近,我试图将一个Java代码片段转换成Kotlin。在这段代码中,我有一个特殊的需求,只有在满足某些条件时才初始化一个对象,如果不需要初始化它,我不知道如何获得初始化的副作用(获取一个空的新文件)。 但是Kotlin不允许没有初始化。 有人有办法解决这个问题吗?谢谢

Java代码 我尝试过的Kotlin代码: 还有这个 问题在于:

var fos: FileOutputStream?;
…就是你没有初始化任何东西。(Java也会以同样的方式抱怨未初始化的类型。)

您可以简单地将其初始化为null:

var fos: FileOutputStream? = null
正如您在评论中发现的,您需要确保使用
fos?.write()
,而不是
fos.write()
,以满足以下问题:

var fos: FileOutputStream?;
…就是你没有初始化任何东西。(Java也会以同样的方式抱怨未初始化的类型。)

您可以简单地将其初始化为null:

var fos: FileOutputStream? = null

正如您在评论中所发现的,您需要确保使用
fos?.write()
而不是
fos.write()
来满足需求。

您不能只执行
var fos:FileOutputStream?=空值
?或者我在这里遗漏了什么?是的,它工作:-),与“fos?.write(something)”一起,没有“?”编译器抱怨道。谢谢。好的,太好了。在这种情况下,我把它变成了一个答案。根据代码之后发生的事情,你也可以考虑<代码> LaTeInIt var fos:FielOutPutsStudio大多数时候,在KOTLIN中使用VAR是一种难闻的气味。也许你可以使用val fos=list.find{condition}?还有{FileOutputStream(it.filename)}难道你不能只做
var fos:FileOutputStream?=空值
?或者我在这里遗漏了什么?是的,它工作:-),与“fos?.write(something)”一起,没有“?”编译器抱怨道。谢谢。好的,太好了。在这种情况下,我把它变成了一个答案。根据代码之后发生的事情,你也可以考虑<代码> LaTeInIt var fos:FielOutPutsStudio大多数时候,在KOTLIN中使用VAR是一种难闻的气味。也许您可以使用val fos=list.find{condition}?.还有{FileOutputStream(it.filename)}
var fos: FileOutputStream? = null