Что такое "самый простой" способ создать одиночный (только один элемент) массив объектов в Java?
Лучший способ создания одноэлементного массива
Ответ 1
Object [] singleton = { new SomeObject() };
Ответ 2
Стандартный способ:
String[] arr = new String[]{"I am the one and only"};
Я боюсь, что это не намного проще, чем это.
Изменить: оно:
String[] arr = {"I am the one and only"};
Спасибо aioobe, я все время забываю об этом.
Конечно, если вы часто создаете массив, вы можете создать вспомогательный метод, который делает вещи немного проще:
public static <T> T[] asArray(T... items){
return items;
}
String[] arr = asArray("I am the one and only");
(Но вы не можете обеспечить во время компиляции, что он будет массивом только с одним элементом)
Далее я собирался написать метод одиночного массива, но Стивен избил меня до этого.
Ответ 3
enum solution (антиотражающая атака):
enum MySingleton{
INSTANCE(new String[]{"a","b"});
final String[] values;
private MySingleton(String[] values) {
this.values = values;
}
}
ссылайтесь на него как:
MySingleton.INSTANCE;
Ответ 4
Это должно выполнить задание
public SomeType[] makeSingletonArray(SomeType elem) {
return new SomeType[]{elem};
}
Общая версия этого метода будет несколько неудобна в использовании, так как вам нужно передать объект Class
в качестве дополнительного параметра.
Вложение выражения SomeType[]{elem}
проще, и как обычно я это делаю.
Ответ 5
Вы можете сделать это:
String[] a = Collections.
singletonList
("SingleElement").toArray();
Изменить: Упс! Вышеприведенный пример не компилируется. Как указано в комментарии, это можно сделать либо как:
Object[] a = Collections.singletonList("SingleElement").toArray();
Или String[] a = Collections.singletonList("SingleElement").toArray(new String[1]);