1. Java / Говнокод #12324

    +70

    1. 1
    2. 2
    3. 3
    4. 4
    5. 5
    6. 6
    7. 7
    if (!formules.isEmpty()) {
        for (String tag : formules) {
        .....
        // и вот здесь шедевр:
        }
        // а здесь ничего нет
    }

    Не гоняем цикл вхолостую

    alopen, 21 Декабря 2012

    Комментарии (11)
  2. Java / Говнокод #12314

    +71

    1. 1
    2. 2
    3. 3
    4. 4
    5. 5
    6. 6
    7. 7
    public class ConfigManager implements IConfigManager<ConfigManager> {
    // skipped...
    public ConfigManager setName(String name) {
       return null;
    }
    // skipped...
    }

    POJO для хранения конфигов. setName определен в интерфейсе, при этом где то реализация есть, а где то нету. Видимо где вылетало - там и реализовали...

    eveenah, 19 Декабря 2012

    Комментарии (6)
  3. Java / Говнокод #12309

    +67

    1. 1
    2. 2
    3. 3
    4. 4
    /**Not related to Cosmos and Space-ships
     * */
    public class SpaceListener {
    ...

    Просто шутка в комментарии к лисенеру нажатий пробела.

    alexcom, 18 Декабря 2012

    Комментарии (8)
  4. Java / Говнокод #12303

    +65

    1. 01
    2. 02
    3. 03
    4. 04
    5. 05
    6. 06
    7. 07
    8. 08
    9. 09
    10. 10
    11. 11
    12. 12
    13. 13
    14. 14
    15. 15
    16. 16
    17. 17
    18. 18
    19. 19
    public TransportEntry getTransportEntry(int transportId) {
    		TransportEntry result = null;
    		AbstractTransport transport = TransportManager.getInstance(getActivity()).getTransportById(transportId);
    
    		if (mTransports == null || transport == null)
    			return null;
    
    		int count = mTransports.size();
    		for (int i = 0; i < count; i++) {
    			final TransportEntry entry = mTransports.get(i);
    			if (entry.getTransportId() == transportId) {
    				// нашли нужный транспорт. вернем его, если что...
    				result = entry;
    				// если он еще и онлайн - то сразу возвращаем - самое подходящее
    				if (transport.isUserOnline(entry.getData()))
    					return result;
    			}
    		}
    		return result;

    Если что...

    dkunin, 17 Декабря 2012

    Комментарии (23)
  5. Java / Говнокод #12302

    +62

    1. 1
    2. 2
    3. 3
    4. 4
    @Test(expectedExceptions = UnsupportedOperationException.class)
    public void testGetRooms() {
        dao.getRooms(null);
    }

    100% покрытие тестами

    madhead, 17 Декабря 2012

    Комментарии (10)
  6. Java / Говнокод #12286

    +83

    1. 1
    2. 2
    3. 3
    4. 4
    5. 5
    6. 6
    try{
        name.toLowerCase();
      }catch (NullPointerException e) {
       report().error("java.lang.NullPointerException", e);
       name = "";
      }

    Перспективная проверка на null

    nafania217518, 13 Декабря 2012

    Комментарии (92)
  7. Java / Говнокод #12255

    +79

    1. 01
    2. 02
    3. 03
    4. 04
    5. 05
    6. 06
    7. 07
    8. 08
    9. 09
    10. 10
    11. 11
    12. 12
    13. 13
    14. 14
    15. 15
    16. 16
    17. 17
    18. 18
    19. 19
    20. 20
    21. 21
    22. 22
    23. 23
    24. 24
    25. 25
    26. 26
    27. 27
    28. 28
    29. 29
    30. 30
    31. 31
    32. 32
    33. 33
    34. 34
    35. 35
    36. 36
    37. 37
    38. 38
    39. 39
    40. 40
     private static String dbl2str(Object obj) {
            String value;                        
            String str = obj.toString();
            if (str.indexOf('E') != -1) {
                //System.out.print("1  ");
                String[] qwe = str.split("E");
                String newstr = "";
                int step = Integer.parseInt(qwe[1]);
                for (int ind = 0; ind < qwe[0].length(); ind++) {
                    if (step > 0) {
                        if ((ind == (step + 2)) && (ind != qwe[0].length())) {
                            newstr = newstr + '.';
                        }
    
                        if (str.charAt(ind) != '.') {
                            newstr = newstr + str.charAt(ind);
                        }
                        if ((ind == qwe[0].length() - 1) && (ind <= step)) {
                            for (int ind2 = 0; ind2 < (step + 1 - ind); ind2++) {
                                newstr = newstr + "0";
                            }
                        }
                    } else {
                        if (ind == 0) {
                            newstr = newstr + "0.";
                            for (int ind3 = 0; ind3 > step + 1; ind3--) {
                                newstr = newstr + "0";
                            }
                        }
                        if (str.charAt(ind) != '.') {
                            newstr = newstr + str.charAt(ind);
                        }
                    }
                }
                value = newstr;
            } else {
                value = obj.toString();
            }
             return value;                       
        }

    жгем, товарищи! Double to String!

    orion, 06 Декабря 2012

    Комментарии (9)
  8. Java / Говнокод #12242

    +75

    1. 1
    Long value = Long.valueOf(String.valueOf(avpValue));

    не специалист по жабе, но пахнет: сначала по всему коду нагородить огородов с Byte/Short/Integer/Long что бы потом в самом важном месте вот так в лоб все в Long конвертить...

    Dummy00001, 03 Декабря 2012

    Комментарии (7)
  9. Java / Говнокод #12211

    +78

    1. 1
    2. 2
    3. 3
    4. 4
    5. 5
    if ((act_type == 15) || (act_type == 24)) {
    } else {
                if (duration != null)
                dts.setDuration(dts.getDuration().add(duration));
    }

    Вся пунктуация сохранена и НИЧЕГО НЕ ВЫРЕЗАНО
    Волшебный if
    Пруф [[ скрыт ]]
    строка 112 - 116

    smpl, 28 Ноября 2012

    Комментарии (116)
  10. Java / Говнокод #12183

    +74

    1. 1
    2. 2
    3. 3
    4. 4
    5. 5
    6. 6
    private static class NullReader extends Reader {
        public int read(char[] cbuf, int off, int len) {
            return 0;
        }
        public void close() {}
    }

    Однажды понадобилось работать с модулем, который что-то читает с помощью StreamTokenizer, но вместо реального файла подсовывать ему что-то своё, генерируемое на ходу, и при этом быть в курсе, какое место он сейчас читает. Решил пронаследоваться от StreamTokenizer и переопределить ему nextToken(). Оказалось, что у StreamTokenizer нет пустого конструктора, надо обязательно вызвать super и передать туда какой-нибудь Reader. Попробовал передавать null - оказалось, что в его конструкторе стоит проверка, которая сразу кидает NullPointerException. Блин, зачем ему Reader, если он к этому Reader никогда не обратится, ведь я nextToken переопределил! Пришлось сделать свой Reader-заглушку. Но чтобы пронаследоваться от абстрактного Reader, нужно обязательно определить методы read и close. Вот такая шняга в итоге получилась. Недавно случайно открыл код на этом месте и долго на неё пялился :-)

    GoblinAlchemist, 23 Ноября 2012

    Комментарии (7)