-3

我正在开发一个“完美”的 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)只是因为它们在同一行。

我想让他明白这只是为了展示目的,但我做不到。

有任何想法吗?

4

3 回答 3

0

在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;
}
于 2014-01-05T04:47:09.887 回答
0

编译器剥离并忽略所有空格,因此您需要尊重元素的正确顺序(即,where())of之后selectColumns)。

于 2014-01-05T04:47:18.527 回答
0

您确实无能为力,但请尝试以最佳方式重新组织它。许多程序员会选择他们的风格;我的建议是选择一种风格并坚持下去

例如,在 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;
}

这是我喜欢的风格,如果适用的话。

于 2014-01-05T05:02:26.587 回答