Стандартное место для пустого массива строк в JDK - PullRequest
2 голосов
/ 22 марта 2010

Привет, есть ли стандартное место для доступа к пустым константам массива в JDK> 1.5.

Когда я хочу выполнить преобразование из String Collection (например, ArrayList) в String Array, я обнаруживаю, что использую свой собственный который определен в моем собственном классе констант:

public static final String[] EMPTY_STRING_ARRAY = new String[0];

А потом в моем клиентском коде что-то вроде:

String[] retVal = myStringList.toArray(Constants.EMPTY_STRING_ARRAY);
return retVal;

Мне было интересно, если это «идиоматический» способ сделать это или я что-то упустил В результате краткого поиска, который я сделал, у меня сложилось впечатление, что подобные вещи распространены в коде многих людей.

Любые идеи, ответы, комментарии (кроме того, что я не должен действительно использовать String Arrays) очень ценятся,

Приветствие Simon

Ответы [ 2 ]

2 голосов
/ 22 марта 2010

Я бы порекомендовал следующее улучшение кода:

String[] retval = myStringList.toArray(new String[myStringList.size()]);

Таким образом, метод toArray использует предоставленный массив соответствующего размера в качестве контейнера, вместо создания нового за кулисами.Из архива ArrayList:

Если список помещается в указанный массив, он возвращается в него.В противном случае новый массив выделяется с типом времени выполнения указанного массива и размером этого списка.

1 голос
/ 22 марта 2010

В JDK нет ни одного определения массива, подобного этому.Единственные два стандартных способа сделать это в JDK - это то, что вы перечислите или

String ret[] = new String[myStringList.size()];
myStringList.toArray(ret);
return ret;
...