- 1
- 2
- 3
- 4
- 5
- 6
- 7
/**
* @return
* true - если все строчки выделены,
* false - если все строчки не выделены,
* null - если есть как выделенные, так и не выделенные строчки
*/
private Boolean lookRowsDownwards(ColumnHolder rowHolder, boolean isPreviousRowsSelected) {
SmackMyBitchUp 06.07.2011 16:52 # +6
Demetr 06.07.2011 16:56 # +2
меня тоже порадовал
SmackMyBitchUp 07.07.2011 15:39 # 0
Либо после рефакторинга класс стал иметь более универсальную реализацию, но про название забыли или на него забили.
gegMOPO4 06.07.2011 17:08 # −2
absolut 06.07.2011 17:29 # +7
gegMOPO4 06.07.2011 22:01 # −3
absolut 07.07.2011 10:29 # 0
gegMOPO4 07.07.2011 11:02 # 0
Demetr 06.07.2011 17:44 # +1
gegMOPO4 06.07.2011 22:03 # −5
По сути, Boolean — трехзначный тип.
SmackMyBitchUp 06.07.2011 23:52 # 0
gegMOPO4 07.07.2011 09:43 # 0
Demetr 07.07.2011 09:17 # +3
gegMOPO4 07.07.2011 09:42 # +1
Demetr 07.07.2011 15:28 # 0
" boolean " 3116 раз
" Boolean " 141 раз
с возможным null не увидел использования, проглядел штук 20 случайным образом, только там, где надо объект возвращать. Ах, да, ещё " Boolean." 242 раза для выражений Boolean.TRUE и Boolean.False.
Что я делаю неправильно?
gegMOPO4 08.07.2011 21:49 # 0
Первое же в возвращаемом значении: AbstractXMLSchema.getFeature. Дальше ImageIO.CacheInfo.getHasPermission, XMLComponent.getFeatureDefault (и перегрузка в дюжине классов), Timer.getFixedRate.
Среди членов-данных GroupLayout.ComponentInfo.honorsVisibili ty, NimbusDefaults.DerivedFont.bold и т.д.
SmackMyBitchUp 08.07.2011 22:35 # 0
А сколько среди этого всего с возвратом null?
Да и чего вы тут развели. Это же вообще дебильный эстетический вопрос. Я вот раньше просто не додумывался, что можно использовать Boolean и возвращать null. Просто потому, что не было необходимости делать подобное. Теперь знаю. Вам спасибо. Буду делать так, ежели необходимо вернуть состояние "не закрыта".
gegMOPO4 08.07.2011 23:20 # 0
Никто и не утверждает, что это нужно часто, но бывает. Используется для возврата состояния не открыто или закрыто, а «фиг его знает, спёрли шкатулку». Если где встречается Boolean, нужно задуматься, а не может ли он быть null, и устроит ли нас NullPointerException.
tir 09.07.2011 11:04 # +2
SmackMyBitchUp 07.07.2011 10:32 # 0
Видимо, далеко мне еще до вашего New School. Или я просто не готов видеть в своих проектах модель поведения: открыто, закрыто, не закрыто ^_^
А вообще, как по мне, дак вы придаете излишнюю смысловую нагрузку простецкому классу-обертке.
gegMOPO4 07.07.2011 10:55 # 0
SmackMyBitchUp 11.07.2011 17:28 # 0
absolut 07.07.2011 11:40 # +3
Lure Of Chaos 08.07.2011 15:21 # 0
tir 07.07.2011 13:31 # 0
П. С. Метод приватный + есть жавадок, вообще не вижу проблемы
SmackMyBitchUp 07.07.2011 13:48 # 0
guest 07.07.2011 16:09 # −1
Лучше использовать паттерн ValueContainer/Option/Optional/Nullable используется как некое_значение_любого_типа/не указано.
tir 07.07.2011 20:10 # 0
guest 07.07.2011 20:45 # −1
ВоВо. А эти паттерны уже реализованы в большинстве библиотек.
tir 08.07.2011 10:47 # 0
guest 08.07.2011 12:05 # −1
И да, в части языков - это есть в стандартной библиотеке.
Уж что, что, а городить велосипед ради одного места точно не стоит. Лучше воспользоваться либой.
tir 08.07.2011 14:00 # −1
Часто бывает надо работать с коллекциями. В java.utils.* действительно нет многого. Давайте подключим либу, например, Apache Collections. Все хорошо, пока не понадобился метод, которого нет в Apache, но он есть в Guava. Ну, давайте еще и Guava подключим. Мы счастливы, мы не изобретаем велосипед. Но вот опять встает задача, для которой нет метода в либе, но он есть еще в каких-либо collections. Давайте и их подключим. В итоге выходит, что подключена куча либов, которые на 90% если не больше делают одно и тоже. Помимо коллекций надо работать еще и со строками, и с xml и с прочей всякой фигней. И либы растут как снежный ком. Растет размер приложения. Если работает команда разработчиков, то каждый начинает использовать разные либы. Теряется общий стиль кода. Кому-то нравится new ArrayList(), кому-то Lists.arrayList(), кому-то Collections.newArrayList() или подобная фигня. Усложняется понимание кода, т. к. в разных либах методы делающие одно и то же часто называются по-разному, т. е. программисту дополнительно надо держать это в голове. Засирается PermGen. Когда программа не укладывается в 256Mb PermGen'а, это уже перебор.
Поэтому иметь самописный метод, проверяющий, что строка не пустая - это нормально. Пока нужен лишь один этот метод.
Подключение любой либы должно быть осмысленным, целесообразность должна быть доказана.
Lure Of Chaos 08.07.2011 14:20 # +1
tir 08.07.2011 14:33 # 0
Очень часто бывает, что пригоняют ядерную боеголвку, когда достаточно было рогатки.
Lure Of Chaos 08.07.2011 15:01 # 0
Вот когда-то мне нужен был простенький логгер. Что бы не подключать всякие log4j, как мне показалось, достаточно громоздкие, я написал маленький велосипед gargoyle.util.log.Log с одним СТАТИЧНЫМ методом Log.log(String,LEVEL);
Потом он немного разросся. И теперь в большинстве случаев он не нужен :)
tir 08.07.2011 15:17 # 0
Логгер - это уже фреймворк. Вот тут уж точно изобретать велосипеды не стоит. Это как свой jpa писать, или di-фреймворк, или xml парсить.
Просто надо выбирать один инструмент, и его использовать до тех пор, пока нет весомых аргументов в пользу другого.
Lure Of Chaos 08.07.2011 15:29 # 0
не согласен в терминологии. Логгер - это библиотека. Разница (может быть, только для меня) в том, что фреймворк, в отличии от библиотеки, навязывает свою логику работы приложения (смежное, особенно для веба, понятие - IoC).
И если смена библиотеки относительно безболезненна (чаще просто хватает поменять имена), то смена фреймворка скорее аналогична переписыванию приложения.
tir 08.07.2011 16:41 # 0
Фреймворк, в моем понимании, несет набор законченой функциональности.
П. С. Погуглил, в очень многих местах написано log4j - logging framework
Lure Of Chaos 08.07.2011 16:51 # 0
п.с. неважно, как во многих местах написано, важно, как называют на офсайте:
"The products of the Apache Logging Services Project included four logging frameworks"
(http://logging.apache.org/index.html)
Lure Of Chaos 08.07.2011 14:26 # 0
Можно копировать нужный кусок из библиотеки, обрезая до собственной лайт-версии.
А если нужно изобретать свой велосипед -- то изучить подход в наиболее распространенных библиотеках, предоставляя похожий API - что бы, во-первых, не сбивать с толку остальных (сотрудников\поддержку\любопытных), во-вторых, что бы безболезненно подключить соотв. библу, когда это уже будет целесообразно
Lure Of Chaos 08.07.2011 14:32 # 0
Неплохо бы такой же подход применять и в Джаве тоже
roman-kashitsyn 22.07.2011 17:08 # +1
https://github.com/apache/poi/blob/trunk/src/ooxml/java/org/apache/poi/util/OOXMLLite.java
Единственное условие - код должен иметь хорошее покрытие тестами, так как при вычислении "нужных" классов анализируются классы, загруженные в процессе тестирования.
Lure Of Chaos 22.07.2011 17:10 # 0
Demetr 07.07.2011 15:21 # 0
Lure Of Chaos 07.07.2011 16:07 # −1
carsten 10.07.2011 14:26 # −1
Хотя лучше бы int'ом сразу вернуть количество выделенных строчек.
prevratnic 18.07.2011 18:26 # −1
guest8 09.04.2019 11:08 # −999