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

    +67

    1. 1
    2. 2
    3. 3
    File unzippedDir = File.createTempFile("po.", null);
    unzippedDir.delete();
    unzippedDir = new File(unzippedDir.getAbsoluteFile() + ".dir");

    ну да, а посмотреть сигнатуру метода, который вызываем, не судьба, лучше изобрести велосипед
    public static File createTempFile(String prefix, String suffix) throws IOException
    СУФФИКС!!!

    Запостил: evg_ever, 04 Февраля 2014

    Комментарии (6) RSS

    • > СУФФИКС!!!

      ну чего вы раскричались? там откуда копипиздили, суффикс не использовался, вот тебе и вся rocket science.

      в добавок, писали очевидно из под дебагера, потому что до конкатенации "po." + ".dir" сам не додумаешся, если только в дебагере не подсмотреть какие там строки насамом деле возвращаются.
      Ответить
    • > СУФФИКС!!!
      А как вторую строку потом переписать? Отрезать этот суффикс обратно? Приклеивать то всяко легче, чем отрезать ;)
      Ответить
      • The suffix argument may be null, in which case the suffix ".tmp" will be used.

        Т.е. код делает примерно вот это, если я не затупил:
        1) создает временный файл po.всякиймусор.tmp
        2) удаляет его (перестраховка, т.к. The file denoted by the returned abstract pathname did not exist before this method was invoked)
        3) готовится что-то делать с po.всякиймусор.tmp.dir

        Интересно, чего хотел добиться автор...
        Ответить
        • Что-то мне кажется, что автор хотел не create этот TempFile, а нечто в духе generateNameForTempFile (которого в жабе нет)... Поэтому он его сразу же и удаляет. А po.всякиймусор.tmp и po.всякиймусор.tmp.dir скорее всего будут переданы в качестве параметров какой-то внешней утилите...

          Ой не в суффиксе тут говно, ой не в суффиксе...
          Ответить
    • > лучше изобрести велосипед
      Как подсказывает мне мой скилл телепатии, автор изобрел свой кривожопый велосипед, подверженный race condition, как замену функции, которая появилась только в седьмой версии:
      Path path = Files.createTempDirectory("po.");
      Еще один гвоздь в крышку гроба шестой жабы.

      P.S. Сорри за мысли вслух в этом треде ;)
      Ответить

    Добавить комментарий