Android/Java漂亮的代码演示
我正在开发一款完美的Android CRUD,有尽可能多的选项 它的目的是开源和共享 所以,我试图得到一个好的、缩进的、可读的代码,但我有以下问题 看起来很难看:Android/Java漂亮的代码演示,java,android,indentation,human-readable,Java,Android,Indentation,Human Readable,我正在开发一款完美的Android CRUD,有尽可能多的选项 它的目的是开源和共享 所以,我试图得到一个好的、缩进的、可读的代码,但我有以下问题 看起来很难看: public Where<Item, Integer> getWhereSearchOnNameLight(String searchName) { try { return itemsDao.queryBuilder().selectColumns(Item.COLUMN_ID,
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\u CATEGORY\u ID关联,因为它们在同一行上
我想让他明白这只是为了展示,但我不能
有什么想法吗?在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;
}
编译器会剥离并忽略所有空白,因此您需要尊重元素的正确顺序,即在selectColumns的后面有where。您确实无能为力,但请尝试以一种可读性最好的方式重新组织它。许多程序员会选择他们的风格;我的建议是选择一种风格并坚持下去 例如,在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;
}
这是我喜欢的风格,如果适用的话 编写清晰的代码。有足够的评论。遵循基本缩进。除了不合法的Java语法与Android无关之外,顺便说一句,为什么第二段代码比第一段更好?对我来说,第二个版本看起来像列\u CATEGORY\u ID应该是WHERE子句的一部分,显然它应该是返回的列之一。在我看来,它也没什么好看的。试图让编译器相信无效代码更漂亮可能不会顺利进行。PS,它是一个生成器,你可以重新排序方法调用。完美太多了!