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

    +146

    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 HelloWorld {
    
    	public static void main(String[] args) {
    		HelloWorld hw = new HelloWorld();;;;;;;;;;;;;;;;;;;;;;;;;
    		hw.doHw();
    	}
    	
    	public void doHw()
    	{
    		System.out.println("Hello, world");
    	}
    
    }

    Не совсем понимаю что это, но javac HelloWorld.java не выдал никаких ошибок. Возможно кто-то про это писал но все же..

    redenemy, 25 Сентября 2011

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

    +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
    public void CheckText(EditText et1, EditText et2)
        {
        	String s;
        	ArrayList arr = new ArrayList();
        	s = "" + et1.getText();
        	for(int i=0; i<s.length();i++)
        	{
        		arr.add(s.charAt(i));
        	}
        	s = "";
        	for(int i=0;i<arr.size()-1;i++)
        	{
        		s += arr.get(i);
        	}
        	
        	et2.setText(s);
        	et2.setSelection(et2.length());
        }

    Android

    jnixable, 24 Сентября 2011

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

    +148

    1. 1
    2. 2
    3. 3
    4. 4
    5. 5
    6. 6
    public List<OrderEntity> getOrders() {
        if (orders == null) {
            orders = new ArrayList<OrderEntity>();
        }
        return orders;
    }

    Потокобезопасность? Не, не слышал.

    roman-kashitsyn, 23 Сентября 2011

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

    +85

    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
    62. 62
    63. 63
    64. 64
    65. 65
    66. 66
    67. 67
    68. 68
    69. 69
    70. 70
    71. 71
    72. 72
    73. 73
    74. 74
    75. 75
    76. 76
    77. 77
    78. 78
    79. 79
    80. 80
    81. 81
    82. 82
    83. 83
    84. 84
    85. 85
    nLen = m_aRealTexts[index].m_txtString.length();
    for (int iyhx = 0; iyhx < nLen; iyhx++) {
    	cLetter = m_aRealTexts[index].m_txtString.charAt(iyhx);
    	CTxtCharStyle pCharNode = new CTxtCharStyle(cLetter);
    	pCharNode.SetTxtFontFace(m_nFontFace);
    	m_aRealTexts[index].m_txtChars.add(pCharNode);
    }
    
    ...
    
    
    public void SetTxtFontFace(byte nType)
    {
    	String sLine, sTemp;
    	int nMark;
    	float xValue, yValue;		//笔画点位的临时坐标
    	byte bIsBigChar = 0;		//1表示ANSI字体UserArial_ansi.uft,2表示Unicode字体UserArial_unicode.uft,3表示宋体hztxt1.shx
    	m_cStroke.clear();			//清空笔画路径链表
    	
    	if(nType == 1)
    	{
    		if((int)m_cChar<0x7F || ((int)m_cChar>=0x2160&&(int)m_cChar<=0x2169))
    		{
    			//按Unicode编码顺序处理字符查找指定字库文件,避免读取不必要的字库文件
    			InputStream fInFile = this.getClass().getResourceAsStream("/TagResources/UserArial_ansi.uft");
    			
    			...
    			
    			fInFile.close();
    		}
    		else if((int)m_cChar>=0x007F && (int)m_cChar<0x2FFF)
    		{
    			//字符在UserArial_ansi.uft中未找到,看是否在UserArial_unicode.uft中
    			int nGetByte;
    			sLine = new String("");
    			sTemp = new String("");
    			//float xValue, yValue;
    			byte[] CharUnicode = new byte[2];			//一次读取两个字节,为一个字符
    			byte[] cBytes = new byte[2];
    			InputStream fInFile = this.getClass().getResourceAsStream("/TagResources/UserArial_unicode.uft");
    			while((nGetByte = fInFile.read(cBytes, 0, 2)) > 0)
    			{
    				...
    			}
    			fInFile.close();
    		}
    		else if((int)m_cChar>=0x3000)
    		{
    			//字符在西文字库UserArial.uft中未找到,是大字体,则在宋体文件hztxt1.shx中查找
    			m_cWidth = 112.0f;	//对于宋体,左下角点为坐标原点,包围盒长宽皆为127,调整量为(127-112)/2=5
    			m_cHeight = 112.0f;
    			byte nMoveDown = 5;
    			InputStream fInFile = this.getClass().getResourceAsStream("/TagResources/hztxt1.shx");
    			
    			...
    			
    			fInFile.close();
    		}
    		else if(bIsBigChar == 0)
    		{
    			//仍然没有找到字符字体,则按空格处理
    			m_cWidth = 12.0f;
    			m_cHeight = 16.0f;
    			m_cStroke.clear();
    		}
    	}
    	else if(nType == 2)
    	{
    		try
    		{
    			
    			InputStream fInFile = this.getClass().getResourceAsStream("/TagResources/hztxt1.shx");
    			
    			...
    			
    			fInFile.close();
    			
    		}
    		catch(IOException e)
    		{
    			//异常处理
    			e.printStackTrace();
    		}
    	}
    }

    Ещё один отжиг господ китайцев.

    Магические числа вместо энумов и закрытие файлов вне finally - это ещё полбеды. Больше всего умиляет, что при каждой отрисовке отдельно для каждой буквы файл шрифта открывается и сканируется по новой. Неудивительно, что отрисовка так тормозит. Буду переписывать это дело - загружать глифы из файла один раз и затем дёргать их из кэша.

    lucidfox, 23 Сентября 2011

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

    +81

    1. 1
    item.getName().equals("")==false

    Art, 23 Сентября 2011

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

    +78

    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
    PreparedStatement statement = createStatement();
    
    for (Value value: values) {
    
    	if (statement == null) {
    		statement = createStatement();
    	}
    
    	try {
    		if (statement.isClosed()) {
    			statement = createStatement();
    		}
    	} catch (Exception e) {
    		logger.error("...", e);
    	}
    
    	// ...
    }

    "бог любит троицу"

    user654321, 23 Сентября 2011

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

    +69

    1. 1
    2. 2
    3. 3
    4. 4
    5. 5
    6. 6
    public void openPopupWindow( com.sap.tc.webdynpro.services.session.api.IWDWindow window )
      {
    	IWindowStackElement newWindow = wdContext.nodeWindowStack().createWindowStackElement();
    	newWindow.setWindow(window);
    	wdContext.nodeWindowStack().addElement(newWindow);
      }

    Вот так вот вроде называешь всё своими именами, а потом на выходе получаешь вот такую тавтологию как в 4ой строке.

    foGa, 23 Сентября 2011

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

    +72

    1. 1
    2. 2
    3. 3
    4. 4
    5. 5
    if(TextUtils.isEmpty(text)
        || TextUtils.isEmpty(text)
        || TextUtils.isEmpty(text)) {
       return null;
      }

    Не уверенность в себе.

    musuk, 22 Сентября 2011

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

    +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
    Entity entity1 = null;
            Entity entity2 = null;
            //..............        
            Entity entityN = null;
            
            try{
                entity1 = provider.getEntity("key1").getValue();
                entity2 = provider.getEntity("key2").getValue();
                //..................
                entityN = provider.getEntity("key3").getValue();
            }catch (NullPointerException e){
                log.error("error", e);
            }
            
            //later
            smth.call(entity1.getSMTH())

    Главное - сообщить в лог!
    Почти такое же г-но ушло на продакшн систему по причине "не успел поревьюить".

    klissan, 22 Сентября 2011

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

    +77

    1. 1
    2. 2
    3. 3
    4. 4
    5. 5
    6. 6
    7. 7
    try {
        order.setAddress(address.clone());
    } catch (CloneNotSupportedException e) {
        // We will not get here, because priorAddressDtoToAdd.address is of Address type.
        // Moreover - none of the subclasses throws this exception
        LOG.error("Address clone is not supported? Nonsense...", e);
    }

    Это было бы даже весело, если бы не повторялось вместе с коментами 3 раза в одном классе.

    roman-kashitsyn, 22 Сентября 2011

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