Как отформатировать строки в Scala? - PullRequest
26 голосов
/ 21 октября 2010

Мне нужно напечатать отформатированную строку, содержащую 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, тип данных или что-то еще?

Ответы [ 3 ]

40 голосов
/ 21 октября 2010

Вы можете попробовать что-то вроде:

val number: Long = 3243
"%d".format(number)
20 голосов
/ 21 октября 2010

Метод форматирования в Scala существует непосредственно в экземплярах из String, поэтому вам не нужен / не нужен метод статического класса.Вам также не нужно вручную ставить примитив long, пусть компилятор позаботится обо всем этом за вас!

String.format("%d", new java.lang.Integer(number))

поэтому лучше записать как

"%d".format(number)
7 голосов
/ 21 октября 2010

@ Ответ Бруно - это то, что вы должны использовать в большинстве случаев.

Если вам нужно использовать метод Java для форматирования, используйте

String.format("%d",number.asInstanceOf[AnyRef])

, который пометит Longхорошо для Java.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...