例如,如果我有以下数据类:dataclassData(valname:String="",valnumber:Long=0)以及可以返回null的函数:funnewName():String?{}funnewNumber():Long?{}我知道如果它们不是null,我可以使用以下函数来使用函数的值:valnewName=newName()valnewNumber=newNumber()valdata=Data(if(newName!=null)newNameelse"",if(newNumber!=null)newNumberelse0)但是当值为null时,有没有办法只使用Data
如何在Kotlin中以本地时间获取当前日期(日月和年)和时间(小时、分钟和秒)?我尝试通过LocalDateTime.now()但它给了我一个错误提示CallrequiresAPILevel26(currminis21)。如何在Kotlin中获取时间和日期? 最佳答案 试试这个:valsdf=SimpleDateFormat("dd/M/yyyyhh:mm:ss")valcurrentDate=sdf.format(Date())System.out.println("CDATEis"+currentDate)
如何在Kotlin中以本地时间获取当前日期(日月和年)和时间(小时、分钟和秒)?我尝试通过LocalDateTime.now()但它给了我一个错误提示CallrequiresAPILevel26(currminis21)。如何在Kotlin中获取时间和日期? 最佳答案 试试这个:valsdf=SimpleDateFormat("dd/M/yyyyhh:mm:ss")valcurrentDate=sdf.format(Date())System.out.println("CDATEis"+currentDate)
我正在寻找与Kotlin中Java的Integer.toHexString()类似的函数。是否有内置的东西,或者我们必须手动编写一个函数来将Int转换为String? 最佳答案 你仍然可以通过调用java.lang.Integer上的静态函数来使用Java转换:valhexString=java.lang.Integer.toHexString(i)而且,从Kotlin1.1开始,Kotlin标准库中也有一个函数可以进行转换:funInt.toString(radix:Int):StringReturnsastringreprese
我正在寻找与Kotlin中Java的Integer.toHexString()类似的函数。是否有内置的东西,或者我们必须手动编写一个函数来将Int转换为String? 最佳答案 你仍然可以通过调用java.lang.Integer上的静态函数来使用Java转换:valhexString=java.lang.Integer.toHexString(i)而且,从Kotlin1.1开始,Kotlin标准库中也有一个函数可以进行转换:funInt.toString(radix:Int):StringReturnsastringreprese
我想获得一些具有相同内容的Map的新实例,但Map没有内置的copy方法。我可以这样做:valnewInst=someMap.map{it.toPair()}.toMap()但它看起来相当丑陋。有没有更聪明的方法来做到这一点? 最佳答案 只需使用HashMap构造函数:valoriginal=hashMapOf(1to"x")valcopy=HashMap(original)Kotlin1.1更新:SinceKotlin1.1,扩展函数Map.toMap和Map.toMutableMap创建副本。
我想获得一些具有相同内容的Map的新实例,但Map没有内置的copy方法。我可以这样做:valnewInst=someMap.map{it.toPair()}.toMap()但它看起来相当丑陋。有没有更聪明的方法来做到这一点? 最佳答案 只需使用HashMap构造函数:valoriginal=hashMapOf(1to"x")valcopy=HashMap(original)Kotlin1.1更新:SinceKotlin1.1,扩展函数Map.toMap和Map.toMutableMap创建副本。
以下代码段中使用的反引号是什么?为什么要在funis(amount:Int):Boolean{...}周围添加它们?verifier.`is`(amount) 最佳答案 这是因为is是Kotlin中的保留关键字。由于Kotlin应该与Java互操作,并且is是Java中的有效方法(标识符)名称,因此反引号用于转义该方法,以便它可以用作方法而不会混淆它一个关键字。没有它,它将无法工作,因为它是无效的语法。这是突出显示intheKotlindocumentation:EscapingforJavaidentifiersthatareke
以下代码段中使用的反引号是什么?为什么要在funis(amount:Int):Boolean{...}周围添加它们?verifier.`is`(amount) 最佳答案 这是因为is是Kotlin中的保留关键字。由于Kotlin应该与Java互操作,并且is是Java中的有效方法(标识符)名称,因此反引号用于转义该方法,以便它可以用作方法而不会混淆它一个关键字。没有它,它将无法工作,因为它是无效的语法。这是突出显示intheKotlindocumentation:EscapingforJavaidentifiersthatareke
我想定义一个值不是序数的枚举,例如:enumclassStates(value:Int){STATE_A(4),STATE_B(5),STATE_C(7),STATE_D(12)}如何获取每件商品的值(value)?例如States.STATE_C应该返回7。 最佳答案 您应该将value定义为属性(val)而不是构造函数参数。之后就可以访问了:enumclassStates(valvalue:Int){STATE_A(1),STATE_B(2),STATE_C(3),STATE_D(4)}...println(States.STA