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

    +2

    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
    public CustomCollection<T> wherePropertyIs(String propertyName, Object value) {
    		CustomCollection<T> lstTemp = new CustomCollection <T>();
    		if (this.size() > 0) {
    			Field foundField = null;
    			for (Field f : this.get(0).getClass().getDeclaredFields()){
    				if (f.getName().equals(propertyName)){
    					foundField = f;
    					break;
    				}
    			}
    			if (foundField != null) {
    				foundField.setAccessible(true);
    				try {
    					for(T obj : this){
    						if (foundField.get(obj).equals(value)){
    							lstTemp.add(obj);
    						}
    					}
    				}catch (IllegalAccessException e){
    					System.out.println(e.getMessage());
    				}
    			}
    		}
    		return lstTemp; 
    	}

    братишка, я тебе Linq на джаве принёс

    bydlan228, 03 Августа 2016

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

    +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
    34. 34
    35. 35
    36. 36
    37. 37
    38. 38
    39. 39
    40. 40
    41. 41
    public Object [][] getResults (String query){
    		Object oArray [][] = {};
    		try (Connection con = Connector.getNewConnection()) {
    			Statement st = con.createStatement(ResultSet.TYPE_FORWARD_ONLY, ResultSet.CONCUR_READ_ONLY);
    			try (ResultSet rs = st.executeQuery(query)){
    				int rows = 0;
    				int cells = 0;
    				List<Object> lstObjX = new ArrayList<Object> (64);
    				while (rs.next()){
    					rows ++;
    					int x = 1;
    					while (true){
    						try {
    							lstObjX.add(rs.getObject(x));
    							x++;
    						}catch (Exception e) {
    							cells = (x != 1) ? x-1 : 0;
    							break;
    						}
    					}
    
    					for (; x-1 < cells; x++){
    						lstObjX.add(rs.getObject(x));
    					}
    
    				}
    				oArray = new Object [rows][cells];
    				int z = 0;
    				for (int y = 0; y < rows; y++){
    					for (int x = 0; x < cells; x++){
    						oArray[y][x] = lstObjX.get(z);
    						z++;
    					}
    				}
    			}
    		}
    		catch (SQLException e) {
    			System.err.println(e.getMessage());
    		}
    		return oArray;
    	}

    Превращаем Resultset в 2-мерную таблицу [y][x], где [y] - индекс строки, а [x] - индекс значений полей

    bydlan228, 03 Августа 2016

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

    +3

    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
    @PostLoad
        protected void initStatus() {
            anState status = null;
            if (isDeleted()) {
                status = anState.S_DELETED;
            } else if (actState != null) {
                if (actState.equals(anState.S_NOT_FILLED)) {
                    status = anState.S_NOT_FILLED;
                } else if (actState.equals(anState.S_FORMED)) {
                    status = anState.S_FORMED;
                } else if (actState.equals(anState.S_SENT) &&
                        (Document != null && Document.getState().equals(DocumentState.SENT))) {
                    status = anState.S_SENT;
                } else if (actState.equals(anState.S_SENT) &&
                        (Document == null ||
                                (Document != null && !Document.getState().equals(DocumentState.SENT)))) {
                    status = anState.S_SENDING;
                } else if (actState.equals(anState.S_CANCELLATION_REQUEST)) {
                    status = anState.S_CANCELLATION_REQUEST;
                } else if (actState.equals(anState.S_CANCELED)) {
                    status = anState.S_CANCELED;
                }
            }
            this.status = status;
        }

    > кстати, валится же в методе

    private boolean isReadonly(anState status) {
    return !status.equals(anState.ACT_FORMED) &&
    !status.equals(anState.ACT_NOT_FILLED);
    }

    > но мы же не знаем, что енумы можно сравнивать и по == (т.к. поля енума - константы), и привычки сравнивать equals на константном выражении тем более не имеем :)

    > facepalm.jpg, словом :)

    Lure Of Chaos, 28 Июля 2016

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

    +12

    1. 01
    2. 02
    3. 03
    4. 04
    5. 05
    6. 06
    7. 07
    8. 08
    9. 09
    10. 10
    return isValidYear(args[4]) ? 
    		  (isValidMonth(args[3]) ? 
    			  (isValidDayOfMonth(args[2]) ? 
    				  (isValidDayOfWeek(args[1]) ? 
    					  (isValidTime(args[0]) ? true 
    					  : false)
    				  : false) 
    			  : false) 
    		  : false) 
    	   : false;

    Не знал, что последовательность && выполняется до первого false, хотел избежать вызова лишних методов при первом ложном результате.

    carapuz, 21 Июля 2016

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

    −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
    общественного недействительными "тест Unit похолодало Effect '() {
            Дано: "температура камеры является смертельной"
            Защиту ячейка = worldSteps.getNextStandaloneCell ()
            INT coldTemperature = Unit.HEALTHY_TEMPERATURE_MIN - 1;
            worldSteps.makePerfectConditionsOnCell (клетка);
            cell.setTemperature (coldTemperature);
    
            когда: "единица создается на этой ячейке"
            worldSteps.createTeamTempGarantNoZeroTeamsInWorld ()
            Защиту humanSquad1 = worldSteps.createUnit (
                    worldSteps.createHumanTeam (),
                    клетка);
    
            Блок Блок = humanSquad1.unit
            Защиту preHealth = unit.getTotalParam (UnitParameterType.HEALTH)
            unit.setTemperature (coldTemperature);
    
            затем: "единица измерения температуры до сих пор не создают эффекта холодной"
            WorldAsserts.assertUnitHasNoEffect (единица измерения, Cold.class);
            утверждают unit.getTotalParam (UnitParameterType.HEALTH) == preHealth
            когда:
            worldSteps.rewindTeamsToStartNewWorldStep ();
            Utils.sleepThread (1000)
    
            затем: "добавлен эффект холодной"
            WorldAsserts.assertUnitAlive (единица измерения);
            WorldAsserts.assertUnitHasEffect (единица измерения, Cold.class);
    
            и: "health-- на той же стадии"
            утверждают unit.getTotalParam (UnitParameterType.HEALTH) == preHealth - 1
        }

    dmli, 14 Июля 2016

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

    +4

    1. 1
    2. 2
    3. 3
    4. 4
    5. 5
    6. 6
    private TableColumnDisplayManager(JTable table) {
        this.table = table;
        table.removePropertyChangeListener(this);
        table.addPropertyChangeListener(this);
        reset();
    }

    Ну, а вдруг?

    george, 13 Июля 2016

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

    +3

    1. 1
    2. 2
    3. 3
    assertArrayEquals("f g h i j k l m n o".split("\\s"), actualValuesArray);
    
    assertArrayEquals(Lists.reverse(Arrays.asList("l m n o p q r s t u".split("\\s"))).toArray(), actualValuesArray);

    Когда лень руками создавать массив строк и сложно перечислить буквы в обратном порядке

    nikit13, 07 Июля 2016

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

    +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
    public void testGetInactiveSessionIds() throws Exception {
            Session inactive1 = createTestSession();
            Session inactive2 = createTestSession();
            Thread.sleep(1001);
            Date timestamp = new Date();
            Thread.sleep(1001);
            List<String> inactiveSessions = sessionDAO.getSessionsWithLastAccessTimeBefore(timestamp);
    
            assertEquals(2, inactiveSessions.size());
            assertTrue(inactive1.getId().equals(inactiveSessions.get(0)) || inactive1.getId().equals(inactiveSessions.get(1)));
            assertTrue(inactive2.getId().equals(inactiveSessions.get(0)) || inactive2.getId().equals(inactiveSessions.get(1)));
        }

    Юнит тест поиск неактивных сессий перед их закрытием. Тут прекрасны задержки на секунду и проверка что сессия содержится в списке inactive

    stokito, 07 Июля 2016

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

    −4

    1. 1
    2. 2
    3. 3
    4. 4
    5. 5
    6. 6
    7. 7
    8. 8
    9. 9
    public static int opposite(int number)
         {
             if(number>0){
                 return number - number - number;
             } if (number<0){
             return number - number - number;
         }return opposite(number);
         }
         }

    Это так я по фасту решил задачу из положительных чисел сделать отрицательные и наоборот :D

    HellMoth, 07 Июля 2016

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

    +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
    public void notificationSuccess(String operation) {
            Logger.getLogger(this.getClass().getName()).log(Level.INFO, "Operation " + operation + " success");
            FacesMessage msg = null;
            msg = new FacesMessage(FacesMessage.SEVERITY_INFO, "Notification", "Success");
            FacesContext.getCurrentInstance().addMessage(null, msg);
        }
    
        public void notificationError(Exception e, String operation) {
            Logger.getLogger(this.getClass().getName()).log(Level.ERROR, "Operation " + operation + " Error ", e);
            FacesMessage msg = null;
            msg = new FacesMessage(FacesMessage.SEVERITY_INFO, "Notification", "Error");
            FacesContext.getCurrentInstance().addMessage(null, msg);
    }

    А не созавать ли мне новый экземпляр логгера при каждом уведомлении...

    proselyte, 03 Июля 2016

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