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
).