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

    +76

    1. 1
    return new Double(Math.ceil(weight)).intValue();

    И снова autoboxing не в почете

    kostoprav, 30 Июня 2014

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

    +70

    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
    public class MyFancyException extends Exception {
        
        public MyFancyException(Throwable cause) {
            super(cause);
        }
        
        static public <X extends Throwable> void foo() throws X {
            try {
                throw new MyFancyException(new Exception());
            }
            catch (MyFancyException ex) {
                throw (X) ex.getCause();
            }
        }
        
        
        public static void main(String[] args) throws IOException {
            MyFancyException.<IOException>foo();
        }
    }

    Прекрасный способ отстрелить себе ногу. Метод foo() может кинуть любое исключение, даже если его нет в списке throws

    aspid812, 27 Июня 2014

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

    +75

    1. 01
    2. 02
    3. 03
    4. 04
    5. 05
    6. 06
    7. 07
    8. 08
    9. 09
    10. 10
    11. 11
    12. 12
    protected String createPublicCacheKey(String...keyElements) {
    	String initial = "public";
    
    	StringBuilder format = new StringBuilder();
    	format.append(initial);
    
    	for(int i=0;i<keyElements.length;i++) {
    		format.append(".%s");
    	}
    
    	return String.format(format.toString(), keyElements);
    }

    Объясните, позязя, почему нельзя сразу добавлять данные к StringBuilder'у. Может быть в этом есть скрытый сакральный смысл желание выпендриться знанием JDK.

    kostoprav, 27 Июня 2014

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

    +75

    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
    import java.lang.reflect.Field; 
    
    public class Main {
        public static void main(String[] args) throws Exception {
            Class cache = Integer.class.getDeclaredClasses()[0];
            Field c = cache.getDeclaredField("cache");
            c.setAccessible(true);
            Integer[] array = (Integer[]) c.get(cache);
            array[132] = array[133];
    
            System.out.printf("%d",2 + 2);
        }
    }

    Джаважды джва равно пять

    http://ideone.com/1Ap0wW

    TarasB, 25 Июня 2014

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

    +72

    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
    private static String fetchEventName(LogEventTypes event) {
    	String result = null;
    	
    	if (LogEventTypes.A.name().equals(event.name()))) {
    		result = play.i18n.Messages.get("...");
    	} else if (LogEventTypes.B.name().equals(event.name())) {
    		result = play.i18n.Messages.get("...");
    	} else if (LogEventTypes.C.name().equals(event.name())) {
    		result = play.i18n.Messages.get("...");
    	} else if (LogEventTypes.D.name().equals(event.name())) {
    		result = play.i18n.Messages.get("...");
    	} else if (LogEventTypes.E.name().equals(event.name())) {
    		result = play.i18n.Messages.get("...");
    	} else if (LogEventTypes.F.name().equals(event.name())) {
    		result = play.i18n.Messages.get("...");
    	} else if (LogEventTypes.G.name().equals(event.name())) {
    		result = play.i18n.Messages.get("...");
    	} else if (LogEventTypes.H.name().equals(event.name())) {
    		result = play.i18n.Messages.get("...");
    	} else if (LogEventTypes.I.name().equals(event.name())) {
    		result = play.i18n.Messages.get("...");
    	} else if (LogEventTypes.J.name().equals(event.name())) {
    		result = play.i18n.Messages.get("...");
    	} else if (LogEventTypes.K.name().equals(event.name())) {
    		result = play.i18n.Messages.get("...");
    	} else if (LogEventTypes.L.name().equals(event.name())) {
    		result = play.i18n.Messages.get("...");
    	}
    
    	return result;
    }

    Секретную инфу потер :) Но думаю, и так все ясно... LogEventTypes - у нас enum.
    Код писал индус (нет ну правда, индус).

    kostoprav, 24 Июня 2014

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

    +75

    1. 1
    2. 2
    3. 3
    4. 4
    5. 5
    6. 6
    HostInfo info = null;
    
    if (info == null)
        return;
    
    info.setOsName(os);

    Выдержка из достаточно серьезного проекта

    SkiFF, 24 Июня 2014

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

    +78

    1. 1
    public static final String TimeoutInMilliseconds = "timeoutInSeconds";

    Нашел в константах нашего проекта. Существовало и ежедневно использовалось в течение 8 месяцев. Глянул историю - создано и редактировалось только мной. Фейспалм.

    mdcool, 23 Июня 2014

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

    +80

    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
    public class CookieHelper {
        public static Cookie getCookie(String name, Http.Request request) {
            Cookie cookie = null;
            if (request.cookies != null) {
                for (Entry<String, Cookie> entry : request.cookies.entrySet()) {
                    if (name.equals(entry.getKey())){
                        cookie = entry.getValue();
                    }
                }
            }
            return cookie;
        }
    }

    request.cookies - это конечно же Map<String, Cookie>

    kostoprav, 23 Июня 2014

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

    +80

    1. 1
    private HttpClient httpServer = new DefaultHttpClient();

    У нас в приложении есть свой сервер!!1

    javahutt, 21 Июня 2014

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

    +75

    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
    public void onBackPressed() {
    	if (getSupportFragmentManager().getBackStackEntryCount()==0 || getSupportFragmentManager().getBackStackEntryCount()==1) { 
    							finish();
    							android.os.Process.killProcess(android.os.Process.myPid());
    							((MainActivity)instance).onDestroy();
    	}
    }
    
    /* чуть дальше */
    
                JSONObject jsonObjectA = null, jsonObjectB = null;
                try {
                    jsonObjectA = new JSONObject(a.toString());
                    jsonObjectB = new JSONObject(b.toString());
                } catch (JSONException e1) {
                    e1.printStackTrace();
                }
    
                if ((jsonObjectA != null || jsonObjectB != null) || (jsonObjectA != null && jsonObjectB != null)) {
                    try {
                        valA = jsonObjectA.getString("name");
                        valB = jsonObjectB.getString("name");
                    } catch (JSONException e) {
                        e.printStackTrace();
                    }
                }

    Первый фрагмент кода - это больше специфика Android - при нажатии кнопки назад: закрыть приложение, убить процесс и дернуть метод onDestroy() который в норме должен автоматом вызваться при закрытии приложения но не вызывается из-за того что мы убиваем процесс. Про то что условие if можно оптимизировать я умолчу.

    На if() во втором фрагменте заглючил даже встроенный в intelliJ Idea инструмент рефакторинга...

    TAX, 20 Июня 2014

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