2014-01-05 5 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

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

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

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

 Смежные вопросы

  • Нет связанных вопросов^_^