Ответ 1
Вы можете попробовать что-то вроде:
val number: Long = 3243
"%d".format(number)
Мне нужно напечатать форматированную строку, содержащую 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, тип данных или что-то еще?
Вы можете попробовать что-то вроде:
val number: Long = 3243
"%d".format(number)
Метод формата в Scala существует непосредственно в экземплярах для String, поэтому вам не нужен/нужен метод статического класса. Вам также не нужно вручную вводить примитив long
, пусть компилятор позаботится обо всем этом для вас!
String.format("%d", new java.lang.Integer(number))
поэтому лучше записывается как
"%d".format(number)
@Bruno ответ - это то, что вы должны использовать в большинстве случаев.
Если вы хотите использовать метод Java для форматирования, используйте
String.format("%d",number.asInstanceOf[AnyRef])
который отлично подойдет для Long
для Java.