2014-01-05 3 views
-3

가능한 한 많은 옵션으로 "완벽한"Android CRUD를 만들고 있습니다.Android/Java의 멋진 코드 표현

그 목적은 오픈 소스이며 공유하는 것입니다.

따라서 멋진 코드 들여 쓰기를 시도하고 있지만 다음과 같은 문제가 있습니다. 추한 외모

는 :

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

을하지만 컴파일러는이 같은 줄에 그냥 때문에 Item.COLUMN_CATEGORY_ID)으로 .where() 연관되어

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

이 꽤 보인다.

나는 디스플레이 목적으로 만 사용한다는 것을 이해시키고 싶지만 그럴 수는 없다.

아이디어가 있으십니까?

+0

명확하고 깨끗한 코드를 작성하십시오. 충분한 코멘트가 있으십시오. 기본 들여 쓰기를 수행하십시오. 그 밖의 다른 것은 필요 없습니다. –

+1

합법적 인 Java 구문 (Android와 관련이 없음, btw) 이외에도 두 번째 코드가 첫 번째 코드보다 우수한 이유는 무엇입니까? 나에게 두 번째 버전은 COLUMN_CATEGORY_ID가 WHERE 절의 일부로 여겨지는 것처럼 보입니다. WHERE 절이 명확하게 반환 된 열 중 하나가되어야합니다. 그것은 또한 나에게 더 예뻐 보이지 않습니다. –

+0

잘못된 코드가 "더 예쁘다"라는 것을 컴파일러에 납득시키려는 시도는 아마도 잘 진행되지 않을 것입니다. –

답변

0

자바에서는 그렇게 할 수 없습니다. 어쩌면 당신은 그들의 위치를 ​​바꿀 수 있습니다.
너무보기도합니다.

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

실제로 할 수있는 일은 많지 않지만, 가장 잘 읽는 방식으로 재구성하려고합니다. 많은 프로그래머들이 자신의 스타일을 고르고 선택할 것입니다. 내 충고는 으로 스타일을 고집하고 그것에 충실합니다.

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

그리고 그 어디에 내 선호하는 스타일, 적용 할 수있다 : 예를 들어

는 인 IntelliJ (13)의 리턴 키의 히트와 몇 번의 키 입력은 저에게이 가져옵니다.