Строковые преобразования - PullRequest
6 голосов
/ 21 января 2009

У меня есть метод, который принимает аргумент String. В некоторых случаях я хочу передать значение int этому методу. Для вызова этого метода я хочу преобразовать int в String. Для этого я делаю следующее

    aMethod(""+100);

Еще один вариант -

    aMethod(String.valueOf(100));

Оба верны. Я не знаю, что подходит? Что дает лучшую производительность?

В основном это происходит в GWT. В GWT для настройки размера панелей и виджетов я хочу это сделать.

Кто-нибудь может дать предложение?

Ответы [ 5 ]

11 голосов
/ 21 января 2009

Хорошая статья Джона Скита на тему вашего вопроса: Строковые преобразования - хорошо, хорошо, я и совершенно ужасно

4 голосов
/ 21 января 2009

Использование + в строках создает несколько строковых экземпляров, поэтому использование valueOf, вероятно, более производительно.

2 голосов
/ 21 января 2009

Поскольку вы в основном используете его в GWT, я бы выбрал метод "" +, так как он выглядит лучше всего, и в любом случае он в конечном итоге будет преобразован в javascript, где нет такой вещи, как StringBuilder .

Пожалуйста, не делай мне больно Скит Фанбойс;)

1 голос
/ 21 января 2009

Обычно вы используете Integer.toString (int) или String.valueOf (int). Они оба возвращают одну и ту же вещь и, вероятно, имеют идентичные реализации. Integer.toString (int) немного проще для чтения, хотя, IMO.

0 голосов
/ 21 января 2009

Я бы предположил, что это:

aMethod(""+100);

превращается в это компилятором:

aMethod(new StringBuilder("").append(String.valueOf(100)).toString());

Так что вариант вызова String.valueOf напрямую, вероятно, является лучшим выбором. Вы всегда можете скомпилировать их и сравнить байт-код, чтобы убедиться в этом.

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