Стиль форматирования Java - PullRequest
       1

Стиль форматирования Java

1 голос
/ 17 августа 2010

Является ли форматирование ниже неким соглашением в Java?Мне лично было труднее читать, чем второй пример.Я здесь один?И есть ли способ сделать такое настраиваемое форматирование в NetBeans при выборе «Источник»> «Формат»?

public boolean handleEvent(Event e) {
    if (e.target == quit) System.exit(0);
    else if (e.target == parent) {
        // Code here
        // Bug workaround
        }
        catch (IOException ex) { infoarea.setText("I/O Error"); }
        return true;
    }

(второй пример)

public boolean handleEvent(Event e) 

   {
      if (e.target == quit) System.exit(0);
      else if (e.target == parent) 

          {
            // Code here
            // Bug workaround
          }
      catch (IOException ex) { infoarea.setText("I/O Error"); }
      return true;
   }

Ответы [ 6 ]

7 голосов
/ 17 августа 2010

В Википедии есть вся статья о стиле отступов . Oracle установила соглашения о кодировании Java и руководство по стилю PDF . Это правда, что это дело вкуса, но есть специфические для Java руководящие принципы, так что весь код Java так же быстро и хорошо понятен и поддерживается любым другим разработчиком Java. Я ненавижу видеть стиль C # в коде Java, но, наоборот, я также ненавижу видеть стиль Java в коде C #. Используйте стиль Java для кода Java и стиль C # для кода C #. Это все ясно для всех.

Ваш пример не компилируется, но при условии, что на самом деле нет try, вот как можно сделать это чистым способом Java:

public boolean handleEvent(Event e) {
    if (e.target == quit) {
        System.exit(0);
    } else if (e.target == parent) {
        // Code here
        // Bug workaround
    } catch (IOException ex) { 
        infoarea.setText("I/O Error");
    }
    return true;
}

Первый представленный вами стиль очень похож на стиль баннера , а второй - на стиль GNU (что немного похоже на стиль Allman / C # .

3 голосов
/ 17 августа 2010

Хотя данный код не компилируется, я предполагаю, что вы говорите об использовании открывающих скобок в той же строке, что и класс / метод / команда, в отличие от использования новой строки перед их использованием?

Если это так, то это действительно очень субъективная вещь - я лично ненавижу, когда мои брекеты стоят на новой линии;для меня это выглядит так же неправильно, как и для тебя.Единственная важная вещь состоит в том, чтобы убедиться, что, если вы работаете в команде, вы все придерживаетесь одних и тех же соглашений - в этом вопросе нет настоящих правильных / неправильных.

2 голосов
/ 17 августа 2010

Используйте соглашение по коду Java для настройки вашего стиля IDE http://www.oracle.com/technetwork/java/codeconvtoc-136057.html

2 голосов
/ 17 августа 2010

Я думаю, что форматирование в обоих примерах трудно читать, и оно противоречит большинству обычных стилей.

1 голос
/ 17 августа 2010

Соглашение по Java-кодированию, начатое Sun, а затем продолженное Oracle, говорит:

Если необходимо всегда используйте фигурные скобки , а открытая фигурная скобка должна быть в той же строке, что и объявление

Опять же, это только условные обозначения, а не правила компиляции. Если ваша команда выбирает по-другому, самое главное, что все следуют ей (даже если это стиль, который вам не нравится). Но для новичка всегда будет легче выбрать стиль кодирования, если используется предпочтительный язык Java.

Единственное исключение, которое я использую, с if это идиома if / try.

Изменение вашего кода будет выглядеть так:

public boolean handleEvent(Event e) {
    if (e.target == quit) { 
        System.exit(0); 
    } else if (e.target == parent) try { // if/try idiom
        // Code here
        // Bug workaround
    } catch (IOException ex) { 
        infoarea.setText("I/O Error"); 
    }
    return true;
}

О конфигурации NetBeans, я думаю, что опция в:

«Инструменты / Параметры, нажмите значок« Редактор »и ​​выберите вкладку« Форматирование », измените размещение фигурных скобок."

Но сейчас у меня нет netbeans.

1 голос
/ 17 августа 2010

Я предполагаю, что вы говорите о том, стоит ли помещать { на новую строку или нет, и не обращайте внимания на тот факт, что есть catch без try.

Да, первый тип определенно является соглашением в Java, а второй - соглашением в C # (хотя в обоих примерах ваш отступ выглядит немного не так).

Я использую оба (на соответствующих языках), и как только вы к этому привыкнете, я не думаю, что есть большая разница в удобочитаемости. Это субъективно, однако, ответ на ваш вопрос просто «Да».

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...