Java: Преобразование набора к массиву для Строкового представления

Если вы просто ищете простое решение для исправления предыдущих коммитов, прочитайте вопрос! Это все объясняет. Но так как Эльмарко просил скользкий путь, здесь мы идем:

Начиная с Git 1.7.0, есть опция --autosquash для rebase , которая делает то, что ты хочешь. Есть также опции --fixup и --squash для commit , чтобы упростить задачу. С помощью псевдонимов вы, вероятно, сможете объединить все это в одну команду.

Я бы предложил перейти на новейший Git для максимальной крутости:

git/Documentation/RelNotes $ grep -i -A1 autosquash\\\|fixup *
1.7.0.txt: * "git rebase -i" learned new action "fixup" that squashes the change
1.7.0.txt-   but does not affect existing log message.
--
1.7.0.txt: * "git rebase -i" also learned --autosquash option that is useful
1.7.0.txt:   together with the new "fixup" action.
1.7.0.txt-
--
1.7.3.txt: * "git rebase -i" peeks into rebase.autosquash configuration and acts as
1.7.3.txt:   if you gave --autosquash from the command line.
1.7.3.txt-
--
1.7.4.txt: * "git commit" learned --fixup and --squash options to help later invocation
1.7.4.txt-   of the interactive rebase.
--
1.7.4.txt: * "git rebase --autosquash" can use SHA-1 object names to name which
1.7.4.txt:   commit to fix up (e.g. "fixup! e83c5163").
1.7.4.txt-

32
задан OscarRyz 29 January 2013 в 17:01
поделиться

6 ответов

Код работает нормально.

Заменить:

System.out.println(array);

С:

System.out.println(Arrays.toString(array));

Вывод:

[b, c, a]
[b, c, a]

Представление массива String отображает «текстовое представление» массива, полученное с помощью Object.toString , которое является имя класса и хэш-код массива в виде шестнадцатеричной строки.

32
ответ дан 27 November 2019 в 20:56
поделиться

для полноты проверки также java.util.Arrays.toString и java.util.Arrays.deepToString .

Последнее особенно полезно при работе с вложенные массивы (например, Object [] []).

9
ответ дан 27 November 2019 в 20:56
поделиться

Все в порядке.

Вы не видите содержимое массива с System.out.println (array), потому что println вызывает object.toString (), чтобы получить байты от объекта для вывода.

Поскольку HashSet переопределяет реализацию toString () по умолчанию, вы можете увидеть содержимое набора с помощью System.out.println (set);

As array не переопределяйте значение по умолчанию toString () (которое дает имя класса и своего рода хэш-код идентификации), вы получите нечеткое [Ljava.lang.String; @ 9b49e6

Надежда, которая поможет

5
ответ дан 27 November 2019 в 20:56
поделиться

Как упоминалось в dfa, вы можете просто заменить:

System.out.println(array);

на ...

System.out.println(Arrays.toString(array));
2
ответ дан 27 November 2019 в 20:56
поделиться

У вас правильный результат. К сожалению, toString () - метод в массиве по-прежнему является исходным Object.toString (), поэтому вывод по умолчанию несколько непригоден, но это касается всех массивов.

0
ответ дан 27 November 2019 в 20:56
поделиться

Не думаю, что вы что-то неправильно поняли; код должен работать. Однако этот массив недостаточно умен, чтобы распечатать его содержимое в методе toString, поэтому вам придется распечатать содержимое с помощью

for(String s : array) println(s);

или чего-то подобного.

1
ответ дан 27 November 2019 в 20:56
поделиться
Другие вопросы по тегам:

Похожие вопросы: