Существуют больше, чем несколько человек, которым не нравится break
и continue
. Последняя жалоба я занялся ими, была в [1 112] JavaScript: Хорошие Части Douglas Crockford. Но я нахожу, что иногда использование одного из них действительно упрощает вещи, особенно если Ваш язык не включает do-while
или do-until
стиль цикла.
я склонен использовать break
в циклах, которые ищут список что-то. После того, как найденный, в продолжении нет никакого смысла, таким образом, Вы могли бы также выйти.
я использую continue
при выполнении чего-то с большинством элементов списка, но все еще хочу перескочить через некоторых.
break
оператор также пригождается при опросе относительно допустимого ответа от кого-то или чего-то. Вместо:
Ask a question
While the answer is invalid:
Ask the question
Вы могли устранить некоторое дублирование и использование:
While True:
Ask a question
If the answer is valid:
break
do-until
цикл, который я упомянул прежде, является более изящным решением для той конкретной проблемы:
Do:
Ask a question
Until the answer is valid
Никакое дублирование и никакой break
необходимый также.
Вы можете переключиться на другую реализацию Base64, например, http://commons.apache.org/codec/apidocs/org/apache/commons/codec/binary/Base64. html , который является частью общих пакетов Apache, которые вы, возможно, уже включили в свой путь к классам, или http://iharder.sourceforge.net/current/java/base64/ , который вы могли бы просто возьмите реализацию и вставьте ее в свое исходное дерево, если вы не хотите, чтобы на пути был еще один Jar.
Инкапсулируйте вызов в классе, который вы помещаете в jar библиотеки на пути к классам. Тогда предупреждение отображается только при перекомпиляции этой библиотеки.
Eclipse действительно имеет настройку, которая (должна) принимать это, см., Например, описание в Примечания к выпуску Eclipse 3.1 :
Настройки → Java → Компилятор → Ошибки / предупреждения → Устаревший и ограниченный API → Запрещенная / нерекомендуемая ссылка
(и страница свойств проекта, позволяющая переопределить этот параметр для конкретного проекта)
Вы не можете выключить их, Eclipse просто фильтрует их за вас (если это будет сказано).
Быстрое временное исправление в Linux:
javac *.java 2>&1 | pcregrep -v -M ".*Sun proprietary API.*\n.*\n.*\^"
2> & 1 ... помещает STDERR в STDOUT, поэтому конвейер "|" будет работать
pcregrep может присутствовать или отсутствовать в вашей системе - в противном случае используйте служебную программу вашего пакета (например, в Debian, Ubuntu и т. д .: "sudo apt-get install pcregrep")
Выражение ищет "Sun проприетарный API »и следующие две строки (содержащие строку и« ^ », указывающие позицию ошибки в строке).
Я оставляю« предупреждения XY ». строка в конце, Note that if you have other warnings as well, the number reported there will of course not be correct :o)
NOTE also that standard "grep" does not work as well, because it can't span multiple lines.