2014-01-05 32 views
-3

我正在研究一個「完美的」Android CRUD,儘可能多的選項。Android/Java不錯的代碼演示

其目的是開源和共享。

所以,我想要一個很好的和縮進的,可讀的代碼,但我遇到了以下問題。

這看起來醜陋:

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)關聯,只是因爲他們是在同一條線上。

我想讓他明白,它只是用於顯示目的,但我不能。

任何想法?

+0

寫清楚,乾淨的代碼。有足夠的評論。遵循基本縮進。沒有別的東西真的需要。 –

+1

除了不是合法的Java語法(與Android無關,順便說一句),爲什麼第二段代碼比第一段好?對我來說,第二個版本看起來像'COLUMN_CATEGORY_ID'應該是WHERE子句的一部分,顯然它應該是返回的列之一。它對我來說也沒有看起來更漂亮。 –

+0

試圖說服編譯器,無效的代碼「更漂亮」可能不會很順利。 –

回答

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; 
} 
0

編譯器條,並忽略所有空格所以需要尊重元件的正確排序(即,具有的selectColumns)where())。

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; 
} 

這是我喜歡的風格,如適用。