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

    +68

    1. 1
    2. 2
    3. 3
    4. 4
    5. 5
    int docTypeId1 = csResult.getDocType().getId();
    int docTypeId2 = attachment.getDocument().getId();
    if (docTypeId1 == docTypeId2) {		// здесь сравниваем типы этих документов
    ....
    }

    asmirnov, 08 Декабря 2014

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

    +76

    1. 01
    2. 02
    3. 03
    4. 04
    5. 05
    6. 06
    7. 07
    8. 08
    9. 09
    10. 10
    11. 11
    12. 12
    @Override
    public void keyPressed(KeyEvent e)
    {
        if (e.getKeyCode() == KeyEvent.VK_LEFT)
            move(-deltaX, 0);
        else if (e.getKeyCode() == KeyEvent.VK_RIGHT)
            move(deltaX, 0);
        else if (e.getKeyCode() == KeyEvent.VK_UP)
            move(0, -deltaY);
        else if (e.getKeyCode() == KeyEvent.VK_DOWN)
            move(0, deltaY);
    }

    Случайно встретил вот это на одном из сайтов, посвященных обучению джаве

    orotti, 07 Декабря 2014

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

    +76

    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
    41. 41
    42. 42
    43. 43
    44. 44
    45. 45
    46. 46
    47. 47
    48. 48
    49. 49
    50. 50
    51. 51
    52. 52
    53. 53
    54. 54
    55. 55
    56. 56
    57. 57
    /**
     * all object cocomponents must be not the same objects in dump - to eliminate strange situations:
     * 
     * @param copySet
     */
    private void createAllNewComplexObjects(HashMap copySet) {
    	if (copySet != null) {
    		for (Iterator i = copySet.keySet().iterator(); i.hasNext();) {
    			Object key = i.next();
    			Object o = copySet.get(key);
    			Object newObject = madeNewObect(o);
    			copySet.put(key, newObject);
    		}
    	}
    }
    
    /**
     * create new instance of the object - if it is of known type. Hashes will bethe same
     * 
     * @param oldObject
     * @return
     */
    private Object madeNewObect(Object oldObject) {
    	if (oldObject instanceof String) {
    		return new String((String) oldObject);
    	}
    	if (oldObject instanceof Point) {
    		return new Point((Point) oldObject);
    	}
    	if (oldObject instanceof Vector2D) {
    		return new Vector2D((Vector2D) oldObject);
    	}
    	if (oldObject instanceof RGBA) {
    		RGBA c = (RGBA) oldObject;
    		return new RGBA(c.getRed(), c.getGreen(), c.getBlue(), c.getAlpha());
    	}
    	if (oldObject instanceof Integer) {
    		return new Integer(((Integer) oldObject).intValue());
    	}
    	if (oldObject instanceof Double) {
    		return new Double(((Double) oldObject).doubleValue());
    	}
    	if (oldObject instanceof Boolean) {
    		return new Boolean(((Boolean) oldObject).booleanValue());
    	}
    	if (oldObject instanceof Float) {
    		return new Float(((Float) oldObject).floatValue());
    	}
    
    	if (oldObject instanceof HashMap) {
    		createAllNewComplexObjects((HashMap) oldObject);
    		return oldObject;
    	}
    
    	return oldObject;
    
    }

    В продолжение темы конструктора String(String).

    someone, 05 Декабря 2014

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

    +84

    1. 1
    List selection = new ArrayList((s != null) ? s : new ArrayList());

    Больше мусора для бога сборщика мусора!

    someone, 05 Декабря 2014

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

    +74

    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
    41. 41
    42. 42
    43. 43
    44. 44
    45. 45
    46. 46
    47. 47
    48. 48
    49. 49
    50. 50
    51. 51
    52. 52
    53. 53
    54. 54
    55. 55
    56. 56
    57. 57
    configRequestTasks = new ConfigRequestRepeatingTask[]{
                    new ConfigRequestRepeatingTask<ApplicationStateModel.ApplicationState>(this) {
                        @Override
                        protected BaseConfigRequest<ApplicationStateModel.ApplicationState> createRequest() {
                            return new ApplicationStateRequest();
                        }
    
                        @Override
                        public ObjectSetting<ApplicationStateModel.ApplicationState> getConfigSetting() {
                            return Config.ApplicationState;
                        }
                    },
                    new ConfigRequestRepeatingTask<MessagesConfigurationModel.MessagesConfiguration>(this) {
                        @Override
                        protected BaseConfigRequest<MessagesConfigurationModel.MessagesConfiguration> createRequest() {
                            return new MessagesConfigurationRequest();
                        }
    
                        @Override
                        public ObjectSetting<MessagesConfigurationModel.MessagesConfiguration> getConfigSetting() {
                            return Config.MessagesConfiguration;
                        }
                    },
                    new ConfigRequestRepeatingTask<HandsetConfigurationModel.FeatureConfiguration>(this) {
                        @Override
                        protected BaseConfigRequest<HandsetConfigurationModel.FeatureConfiguration> createRequest() {
                            return new FeatureConfigurationRequest();
                        }
    
                        @Override
                        public ObjectSetting<HandsetConfigurationModel.FeatureConfiguration> getConfigSetting() {
                            return Config.FeatureConfiguration;
                        }
                    },
                    new ConfigRequestRepeatingTask<FeaturesDetailsModel.FeaturesDetails>(this) {
                        @Override
                        protected BaseConfigRequest<FeaturesDetailsModel.FeaturesDetails> createRequest() {
                            return new FeaturesDetailsRequest();
                        }
    
                        @Override
                        public ObjectSetting<FeaturesDetailsModel.FeaturesDetails> getConfigSetting() {
                            return Config.FeaturesDetails;
                        }
                    },
                    new ConfigRequestRepeatingTask<GeoFenceConfigurationModel.GeoFenceConfiguration>(this) {
                        @Override
                        protected BaseConfigRequest<GeoFenceConfigurationModel.GeoFenceConfiguration> createRequest() {
                            return new GeoFenceConfigurationRequest();
                        }
    
                        @Override
                        public ObjectSetting<GeoFenceConfigurationModel.GeoFenceConfiguration> getConfigSetting() {
                            return Config.GeoFenceConfiguration;
                        }
                    },
     ...

    Вот так мы создаем "очередь" запросов. И это только треть.

    TeTroTro, 04 Декабря 2014

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

    +77

    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
    switch (status) {
    
       case "createInitRequest":
            requestXml = ExtFunc.executeFreemarker(initReqTempl, null, values, em);
            //values.put("soap", soap);
            status = "signInitRequest";
            //return;
    
        case "signInitRequest":    
            initReqSoap = ExtFunc.signSoap(requestXml, context, em);
            if (initReqSoap == null) return;
                    infomsg = "Запрос сформирован и подписан. Нажмите 'Продолжить' для отправки запроса.";
            status = "preSendInitRequest";
            //return;
    
        case "preSendInitRequest":
            status = "sendInitRequest";                   
            return;
    
        // далее ещё 20 кейсов, каждый из которых меняет значение status на значение следующего кейса
    
    }

    chsh, 27 Ноября 2014

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

    +76

    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
    double C54 = ((C13!=0.4)&&(C14!=0)) ? 1 : 0;
            double C55 = ((C13==0.4)&&(C14!=0)) ? 1 : 0;
            double D56 = (C14 == 0) ? 0 : 1;
            double E56 = (C13 == 0.4) ? 1 : 0;
            double C56 = D56 * E56;
            double C57 = ((C13!=0.4)&&(C14!=0)) ? 1 : 0;
            double D58 = (C14 == 0) ? 0 : 1;
            double E58 = (C13 == 0.4) ? 1 : 0;
            double C58 = D58 * E58;
    
            if (C11 >= 670) {
                if (C12 == 3) {
                    result = C28*C11+((C54*C36*C11+C56*C34*C11)*B18+(C57*C35*C11+C58*C33*C11)*B19+C55*C37*C11)*B21;
                } else {
                    result = C28*C11+(((C54*C36*C11+C56*C34*C11)*B18+(C57*C35*C11+C58*C33*C11)*B19+C55*C37*C11)*2)*B21;
                }
            } else {
                if (C12 == 3) {
                    result = (C28-C31)*C11+((C54*C36*C11+C56*C34*C11)*B18+(C57*C35*C11+C58*C33*C11)*B19+C55*C37*C11)*B21;
                } else {
                    result = (C28-C31)*C11+(((C54*C36*C11+C56*C34*C11)*B18+(C57*C35*C11+C58*C33*C11)*B19+C55*C37*C11)*2)*B21;
                }
            }

    Часть калькулятора для рассчетов, изначально было на JS

    chsh, 27 Ноября 2014

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

    +79

    1. 1
    2. 2
    3. 3
    4. 4
    5. 5
    6. 6
    7. 7
    8. 8
    9. 9
    public void playersListClearBlacklist() {
    	List<Player> itemsToRemove = new ArrayList<Player>();
    	for (int i = 0; i < blacklist.size(); i++) {
    		Player player = blacklist.get(i);
    		itemsToRemove.add(player);
    		DBCore.getInstance().deletePlayer(player);
    	}
    	blacklist.removeAll(itemsToRemove);
    }

    Из комерческого проекта

    Smekalisty, 27 Ноября 2014

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

    +71

    1. 1
    2. 2
    3. 3
    4. 4
    5. 5
    6. 6
    7. 7
    8. 8
    9. 9
    public static int activeThreadsCount(List<Thread> threadList)
    {
    	int i = 0;
    	for (Thread thread : threadList)
    	{
    		i += thread.isAlive() ? 1 : 0;
    	}
    	return i;
    }

    pushistayapodmyshka, 26 Ноября 2014

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

    +71

    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
    public static void main(String[] args) {
    	Map<String, ClassLink<?>> children = new HashMap<String, ClassLink<?>>();
    	children.put("test1", new ClassLink<Dall>());
    	children.put("test2", new ClassLink<Son>());
    
    	String test = children.get("test1").classObjectGenerator().getName();
    	test.toString();
    
    }
    
    static class ClassLink<X extends ChildBase> {
    	public X classObjectGenerator() {
    		return (X) new Dall();
    	};
    }
    
    static class Dall implements ChildBase {
    	public String getName() {
    		return "Ivan";
    	}
    }
    
    static class Son implements ChildBase {
    	public String getName() {
    		return "Vera";
    	}
    }
    
    interface ChildBase {
    	String getName();
    }

    Фабрика. Загнать в map легковесный класс - создатель, а когда понадобится - создать объект.

    nick252, 26 Ноября 2014

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