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

    +73

    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 static List<Record> glueList(List<Record> list) {
    		List<Record> result = new ArrayList<Record>();
    		Record tlr = new Record();
    		boolean isToGlue = false;
    		for (int i = 0; i < list.size(); i++) {
    			if (!isToGlue) {
    				tlr = new Record();
    				tlr = list.get(i).clone();
    			}
    			Date endTime = new Date(list.get(i).getEndTime().getTime() + INSIGNIFICANT_TIME_BREAK);
    			if (list.size() > i + 1 && endTime.compareTo(list.get(i + 1).getStartTime()) >= 0) {
    				isToGlue = true;
    				tlr.setEndTime(list.get(i + 1).getEndTime());
    			} else {
    				isToGlue = false;
    				result.add(tlr);
    			}
    		}
    		return result;
    	}

    1. Два раза создается и не используется объект Record
    2. Для сравнения дат используется метод compareTo вместо методов after/before

    intr13, 19 Августа 2009

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

    +71.9

    1. 01
    2. 02
    3. 03
    4. 04
    5. 05
    6. 06
    7. 07
    8. 08
    9. 09
    10. 10
    11. 11
    List<AbstractPOJO> ordersList = getList();		
    int num = CollectionUtils.indexOf(ordersList, orders.getCurrentOrder());
    if (num > -1 && num < ordersList.size()) {
    	int objectsPerPageCount = orders.getObjectsPerPage();
    	for (int i = 0; i < ordersList.size(); i++) {
    		if (num >= objectsPerPageCount * i && num < objectsPerPageCount * (i + 1)) {
    			orders.setPage(i + 1);
    			break;
    		}
    	}
    }

    установка текущей страницы...
    переписалось в:
    List<AbstractPOJO> ordersList = getList();
    int num = CollectionUtils.indexOf(ordersList, orders.getCurrentOrder());
    if (num > -1) {
    orders.setPage(num / orders.getObjectsPerPage());
    }

    asdqwezx, 12 Августа 2009

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

    +77.1

    1. 1
    2. 2
    3. 3
    4. 4
    5. 5
    private Date generateDate(int dateDay, int dateMonth) throws ParseException {
    		DateFormat df = DateFormat.getDateInstance(DateFormat.SHORT);
    		return df.parse(String.valueOf(generator.nextInt(dateDay) + 1) + "."
    			+ String.valueOf(dateMonth) + "." + DATE_YEAR);
    	}

    такое ощущение, что с незапамятных времён индусы перелелялись на русь...

    asdqwezx, 12 Августа 2009

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

    +85.6

    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
    58. 58
    59. 59
    60. 60
    61. 61
    public class StringBufferDbBean {
    
    	public StringBufferDbBean() {
    	}
    
    	public String appendString(String string1, String string2) {
    		String string = null;
    		StringBuffer sb = new StringBuffer(string1);
    		sb.append(string2);
    		string = sb.toString();
    		return string;
    	}
    
    	public void appendString(StringBuffer strBuf, String string1, String string2) {
    		strBuf.append(string1);
    		strBuf.append(string2);
    	}
    
    	public void appendString(StringBuffer strBuf, String string1, String string2, String string3) {
    		strBuf.append(string1);
    		strBuf.append(string2);
    		strBuf.append(string3);
    	}
    
    	public void appendString(StringBuffer strBuf, String string1, String string2, String string3, String string4) {
    		strBuf.append(string1);
    		strBuf.append(string2);
    		strBuf.append(string3);
    		strBuf.append(string4);
    	}
    
    	public void appendString(StringBuffer strBuf, String string1, String string2, String string3, String string4,
    			String string5) {
    		strBuf.append(string1);
    		strBuf.append(string2);
    		strBuf.append(string3);
    		strBuf.append(string4);
    		strBuf.append(string5);
    	}
    
    	public void appendString(StringBuffer strBuf, String string1, String string2, String string3, String string4,
    			String string5, String string6) {
    		strBuf.append(string1);
    		strBuf.append(string2);
    		strBuf.append(string3);
    		strBuf.append(string4);
    		strBuf.append(string5);
    		strBuf.append(string6);
    	}
    
    	public void appendString(StringBuffer strBuf, String string1, String string2, String string3, String string4,
    			String string5, String string6, String string7) {
    		strBuf.append(string1);
    		strBuf.append(string2);
    		strBuf.append(string3);
    		strBuf.append(string4);
    		strBuf.append(string5);
    		strBuf.append(string6);
    		strBuf.append(string7);
    	}
    }

    А вот енто истинное восточное мастерство! Похоже китайцы совсем не в курсе, что строки однако уметь склеиватсо посредством оператора +, и исчо ж ведь есть и String.format. Поентому они создали свой, улучшенный, класс для сцепливания строк. Да в Sun совсем же ничиво не смыслят в етом деле:) Страшно представить функцию для присоединения скажем 50 строк.

    cheap_chinese, 12 Августа 2009

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

    +83.1

    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
    static {
    
    		ruleNum10 = new HashMap();
    		ruleNum10.put("0", "0");
    		ruleNum10.put("1", "1");
    		ruleNum10.put("2", "2");
    		ruleNum10.put("3", "3");
    		ruleNum10.put("4", "4");
    		ruleNum10.put("5", "5");
    		ruleNum10.put("6", "6");
    		ruleNum10.put("7", "7");
    		ruleNum10.put("8", "8");
    		ruleNum10.put("9", "9");
    
    		ruleNum16 = new HashMap();
    		ruleNum16.put("0", "0");
    		ruleNum16.put("1", "1");
    		ruleNum16.put("2", "2");
    		ruleNum16.put("3", "3");
    		ruleNum16.put("4", "4");
    		ruleNum16.put("5", "5");
    		ruleNum16.put("6", "6");
    		ruleNum16.put("7", "7");
    		ruleNum16.put("8", "8");
    		ruleNum16.put("9", "9");
    		ruleNum16.put("10", "10");
    		ruleNum16.put("11", "11");
    		ruleNum16.put("12", "12");
    		ruleNum16.put("13", "13");
    		ruleNum16.put("14", "14");
    		ruleNum16.put("15", "15");
    
    	}

    Очередной пример китайского героизма во владении копипейстом. Они похоже не знают о существовании цикла for и метода String.valueOf. А что если бы там было 200 елементов хотя бы?

    cheap_chinese, 12 Августа 2009

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

    +74.7

    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
    Лучший индусский способ определения текущего трехбуквенного обозначения месяца:
    
    String currentMonth = ((String) monthMap.get(new Integer(today.getMonth()))).substring(0, 3);
    
    где
    
    monthMap:
    
    Map monthMap=new HashMap();	
    			
    monthMap.put(new Integer(Calendar.JANUARY), Constants.JANUARY);
    monthMap.put(new Integer(Calendar.FEBRUARY), Constants.FEBRUARY);
    monthMap.put(new Integer(Calendar.MARCH), Constants.MARCH);

    zavr, 12 Августа 2009

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

    +69.9

    1. 1
    2. 2
    3. 3
    public void ejbPassivate() throws EJBException, RemoteException {
    		return;
    	}

    Истинный китайский девелопер никогда не доверяет компилятору! Ато если ж в функции тело пустое, мало ли, вдруг она никогда не возвратиться. Какой выход? Написать об ентом явно.

    cheap_chinese, 12 Августа 2009

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

    +68.9

    1. 1
    2. 2
    3. 3
    4. 4
    5. 5
    6. 6
    7. 7
    public char getChar() throws ErrorLexAn {
    	delSpace();
    	int simb = p.bufStr[p.posStr] & 0xFF;
    	return charl = simb < 128 ? (char) simb :
    		(new String(new byte[]{
    			convert == false ? (byte) simb : arrayConv[simb]})).charAt(0);
    }

    Читает следующий символ из буфера (хранятся в байтах) и конвертит по таблице.
    Я сам джаву плохо знаю, но уверен, что byte -> char можно сконвертить как-то проще.

    Dimarius, 12 Августа 2009

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

    +76.3

    1. 01
    2. 02
    3. 03
    4. 04
    5. 05
    6. 06
    7. 07
    8. 08
    9. 09
    10. 10
    11. 11
    try {
        ....
    } catch (Exception ex) {
        if (ex != null) {
            try {
                ex.printStackTrace();
            } catch(Exception ex1) {
                ....
            }
        }
    }

    Rudolf_Abel, 11 Августа 2009

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

    +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
    StringBuffer sql = new StringBuffer();
            sql.append("INSERT INTO ");
            sql.append("    APPLIED_TABLE ");
            sql.append(" ( ");
            sql.append("    PROJECT_ID, ");
            sql.append("    APPLIED_ID, ");
            sql.append("    APPLIED_DAY, ");
            sql.append("    USER_ID, ");
            sql.append("    APPLIED_NAME, ");
            sql.append("    APPLIED_LIMIT, ");
            sql.append("    APPLIED_COMMENT, ");
            sql.append("    CATEGORY_ID, ");
            sql.append("    DB_ID, ");
            sql.append("    EXCEL_ID, ");
            sql.append("    UPDATE_DATE, ");
            sql.append("    UPDATE_NAME ");
            sql.append(" ) VALUES ( ");
            sql.append("    ?, ");
            sql.append("    ?, ");
            sql.append("    SYSDATE, ");
            sql.append("    ?, ");
            sql.append("    ?, ");
            sql.append("    ?, ");
            sql.append("    ?, ");
            sql.append("    ?, ");
            sql.append("    ?, ");
            sql.append("    ?, ");
            sql.append("    SYSDATE, ");
            sql.append("    ? ");
            sql.append(" ) ");

    Китайцы составляют SQL запрос. Обратите внимание, что буфер склеиваетсо токо из литералов. Что мешало им написать просто строку с содержимым объединяющим енто все, остается загадкой.

    cheap_chinese, 11 Августа 2009

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