我需要打印一个包含scala.Long的格式化字符串。 java.lang.String.format()与scala.Long(编译时)和RichLong(java.util.IllegalFormatConversionException)不兼容
编译器警告在以下工作代码上弃用Integer:
val number:Long = 3243
String.format("%d", new java.lang.Long(number))
我应该更改fomatter,数据类型还是别的什么?
答案 0 :(得分:40)
您可以尝试以下内容:
val number: Long = 3243
"%d".format(number)
答案 1 :(得分:20)
Scala中的格式方法直接存在于String的实例中,因此您不需要/想要静态类方法。您也不需要手动打开long
原语,让编译器为您处理所有这些!
String.format("%d", new java.lang.Integer(number))
因此更好地写成
"%d".format(number)
答案 2 :(得分:7)
@ Bruno的回答是你应该在大多数情况下使用的。
如果必须使用Java方法进行格式化,请使用
String.format("%d",number.asInstanceOf[AnyRef])
将为Long
很好地填充Java。