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

    −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
    if (context instanceof Activity) {
                activity = (MainActivityMVI) context;
                try {
                    listener = (OnOfferItemClickListenerS) activity;
                } catch (ClassCastException e) {
                    throw new ClassCastException(activity.toString() + "must implement OnOfferItemClickListenerS");
                }
                try {
                    listener2 = (OnLoadDataSearchMainFragmentListener) activity;
                } catch (ClassCastException e) {
                    throw new ClassCastException(activity.toString() + "must implement OnLoadDataSearchMainFragmentListener");
                }
                App.getComponent(activity).inject(this);
            }

    makesense, 16 Мая 2018

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

    +3

    1. 1
    2. 2
    3. 3
    4. 4
    5. 5
    6. 6
    7. 7
    8. 8
    9. 9
    if (x_sum_first_row == 3 || x_sum_second_row == 3 || x_sum_third_row == 3 ||
                x_sum_first_column == 3 || x_sum_second_column == 3 || x_sum_third_column == 3 ||
                x_sumDiagonalLR == 3 || x_sumDiagonalRL == 3 ||
                o_sum_first_row == 3 || o_sum_second_row == 3 || o_sum_third_row == 3 ||
                o_sum_first_column == 3 || o_sum_second_column == 3 || o_sum_third_column == 3 ||
                o_sumDiagonalLR == 3 || o_sumDiagonalRL == 3)
                someoneWon = true;
    
            return someoneWon;

    https://codereview.stackexchange.com/questions/125248/java-tic-tac-toe-game-implemented-through-mvc

    roskomgovno, 11 Мая 2018

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

    +3

    1. 1
    2. 2
    3. 3
    4. 4
    5. 5
    6. 6
    7. 7
    8. 8
    9. 9
    public static Date round(Date d) {
        try {
            SimpleDateFormat sdf = new SimpleDateFormat("ddMMyyyy");
            return sdf.parse(sdf.format(d));
        } catch (ParseException ex) {
            //This exception will never be thrown, because sdf parses what it formats
            return d;
        }
    }

    Простейший коробочный способ округления даты до дня.

    3.14159265, 10 Мая 2018

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

    +3

    1. 1
    http://www.ssw.uni-linz.ac.at/Research/Papers/Wuerthinger07/Wuerthinger07.pdf

    Как известно, в языках C и C++ есть проблема с buffer overflow, в то время как в языке Java такой проблемы нет (баги в реализации самой JVM не рассматриваем). В языке Java, как и в многих других подобных языках для анскиллябр заедушных, не могущих в сырые указатели, сделали проверки границ массива. В говноязыке C++ впрочем тоже есть какая-то такая питушня, например std::vector::at выполняет роверку выхода индекса за границы диапазона вектора. Только вот в язык JVM давно уже внедряют такую хреноту, как array bounds check elimination, т.е. убирание проверок, когда на этапе компиляции можно доказать, что такие проверки не нужны.

    В какой версии C++ сделают чтоб std::vector::at тоже вот так могло автозаменяться на небезопасный аналог если компилятор доказал что там эти проверки не нужны?

    j123123, 03 Мая 2018

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

    +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
    26. 26
    27. 27
    28. 28
    29. 29
    30. 30
    31. 31
    32. 32
    33. 33
    34. 34
    35. 35
    36. 36
    37. 37
    private fun showTicketWithSerialNumber(numberField: EditText, dateField: EditText) {
    
           RxTextView.textChangeEvents(numberField).subscribe {
               if (it.text().isNotEmpty()) {
                   RxTextView.textChangeEvents(dateField).subscribe {
                       if (it.text().isNotEmpty()){
                           vCardSearch.vis { true }
                           vButtonAddFlight.alpha = 1f
                       }
                   }
               }
           }
    
        }
    
     private fun showTicketWithoutSerialNumber(airlineField: EditText, departureField: EditText, arrivalField: EditText, dateField: EditText) {
    
            RxTextView.textChangeEvents(airlineField).subscribe {
                if (it.text().isNotEmpty()) {
                    RxTextView.textChangeEvents(departureField).subscribe {
                        if (it.text().isNotEmpty()){
                            RxTextView.textChangeEvents(arrivalField).subscribe {
                                if (it.text().isNotEmpty()) {
                                    RxTextView.textChangeEvents(dateField).subscribe {
                                        if (it.text().isNotEmpty()){
                                            vCardSearch.vis { true }
                                            vButtonAddFlight.alpha = 1f
                                        }
                                    }
                                }
                            }
                        }
                    }
                }
            }
    
        }

    Открыл. Увидел. Охуел. RxJava(в данном случае RxKotlin) в действии блеать......

    scrobot, 19 Апреля 2018

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

    −4

    1. 01
    2. 02
    3. 03
    4. 04
    5. 05
    6. 06
    7. 07
    8. 08
    9. 09
    10. 10
    List<Validatable> list = getValues();
    
    ...
    return list == null || list.stream().reduce(Boolean.TRUE,
                        (identity, cf) -> identity
                                && cf.validate().stream()
                                .map(ValidationError::getError)
                                .peek(feedbackPanel::error)
                                .count() == 0,
                        (result1, result2) -> result1 && result2);

    Покритикуйте ошибки использования stream и lambda

    owner, 16 Апреля 2018

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

    +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
    public class TradingAccounts {
        private static HashMap<String, TradingAccounts> hashMap = new HashMap<String, TradingAccounts>();
        ....
        public static void clear() throws Exception {
            hashMap.clear();
            TradingAccounts[] all = getAll();
            for (TradingAccounts acc : all) {
                hashMap.put(acc.getAccount().trim(), acc);
            }
        }
        ....
    }

    Production code.
    При рефакторинге LEGACY приложения утерян вызов
    TradingAccounts.clear()
    По факту это привело к ошибке, т.к. этот справочник всегда оставался пустым.
    Кто бы мог догадаться, что метод clear загружает данные из БД...

    anurin, 30 Марта 2018

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

    −4

    1. 1
    А вы играете со своей крайней плотью?

    g0_1494033395677, 26 Марта 2018

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

    −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
    public bool WaitForElement(Action testMethod)
            {
                try
                {
                    testMethod();
                }
                catch (StaleElementReferenceException)
                {
                    testMethod();
                }
                catch (ElementNotVisibleException)
                {
                    return false;
                }
                catch (NoSuchElementException)
                {
                    return false;
                }
                return true;
            }

    http://software-testing.ru/forum/index.php?/topic/21965-borba-so-staleelementreferenceexception-element-is-no-longer-attached-to-the-dom/?p=138795
    "Не боян, а классика!"

    хуита, 20 Марта 2018

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

    −1

    1. 1
    2. 2
    3. 3
    4. 4
    5. 5
    6. 6
    try {
        String sDate = new SimpleDateFormat("MM/dd/yyyy").format(new SimpleDateFormat("dd.MM.yyyy").parse(dayOfMonth + "." + (monthOfYear + 1) + "." + year));
        dueDate.setText(sDate);
    } catch (ParseException e) {
        e.printStackTrace();
    }

    Красивое (и безопасное) решение проблем с разными форматами дат

    StanDalone, 01 Марта 2018

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