Android/Java хорошая презентация кода

Я работаю над "идеальным" Android CRUD, с максимально возможным количеством опций.

Его цель - быть открытым исходным кодом и делиться.

Итак, я пытаюсь получить хороший и с отступом, читаемый код, но у меня возникла следующая проблема.

Это выглядит некрасиво

public Where<Item, Integer> getWhereSearchOnNameLight(String searchName) {
    try {
        return itemsDao.queryBuilder().selectColumns(Item.COLUMN_ID,
                                                     Item.COLUMN_NAME,
                                                     Item.COLUMN_CATEGORY_ID)
                                      .where()
                                      .like(Item.COLUMN_NAME, "%" + searchName + "%");
    } catch (SQLException e) { e.printStackTrace(); }
    return null;
}

Это выглядит довольно:

public Where<Item, Integer> getWhereSearchOnNameLight(String searchName) {
    try {
        return itemsDao.queryBuilder().selectColumns(Item.COLUMN_ID,
                                                     Item.COLUMN_NAME,
                                      .where()       Item.COLUMN_CATEGORY_ID)
                                      .like(Item.COLUMN_NAME, "%" + searchName + "%");
    } catch (SQLException e) { e.printStackTrace(); }
    return null;
}

Но компилятор связывает .where() с Item.COLUMN_CATEGORY_ID)только потому, что они на одной линии.

Я хотел бы, чтобы он понял, что это только для демонстрации, но я не могу.

Есть идеи?

3 ответа

Решение

В Java вы не можете этого сделать. Может быть, вы можете изменить свою позицию.
Это тоже выглядит красиво.

public Where<Item, Integer> getWhereSearchOnNameLight(String searchName) {
    try {
        return itemsDao.queryBuilder().where()
                                      .like(Item.COLUMN_NAME, "%" + searchName + "%")
                                      .selectColumns(Item.COLUMN_ID,
                                                     Item.COLUMN_NAME,
                                                     Item.COLUMN_CATEGORY_ID);
    } catch (SQLException e) { e.printStackTrace(); }
    return null;
}

Вы действительно мало что можете сделать, но попытайтесь реорганизовать его так, чтобы оно читалось лучше. Многие программисты будут выбирать свой стиль; Мой совет - выбрать стиль и придерживаться его.

Например, нажатие клавиши возврата и нескольких нажатий клавиш в IntelliJ 13 дает мне это:

public Where<Item, Integer> getWhereSearchOnNameLight(String searchName) {
    try {
        return itemsDao.queryBuilder()
                .selectColumns(Item.COLUMN_ID,
                        Item.COLUMN_NAME,
                        Item.COLUMN_CATEGORY_ID)
                .where()
                .like(Item.COLUMN_NAME, "%" + searchName + "%");
    } catch (SQLException e) {
        e.printStackTrace();
    }
    return null;
}

И это мой любимый стиль, где это применимо.

Компиляторы удаляют и игнорируют все пробелы, поэтому вам нужно соблюдать правильный порядок элементов (т.е. иметь where() после ) из selectColumns).

Другие вопросы по тегам