2013-06-08 2 views
0

"Hello, Android"의 SQLite 장에서 인터페이스 "Constants"은 테이블 이름과 필드 이름과 같은 일부 상수 문자열을 유지하기 위해 만들어졌습니다.SQLite의 상수 인터페이스를 사용하여 필드 이름을 사용하는 이유는 무엇입니까?

왜? "title"보다 TITLE을 직접 사용하는 것이 더 유용할까요? 내가 놓친 다른 것이 있습니까?

그런데 : 두 개의 테이블이 필요한 경우 어떻게 구성해야합니까? FirstTableConstantsSecondTableConstants 인터페이스를 만들어야합니까?

+1

http://developer.android.com/training/articles/perf-tips.html. 링크 및 사용중인 주제를 확인하십시오 상수에 대한 정적 최종 – Raghunandan

+0

코드 결과가 읽기 쉽기 때문에 기존 열 (열 이름의 맞춤법 오류)을 해결할 확률이 0에 가까워짐 감소 – Blackbelt

+0

이 기사 [http : // www .javaworld.com/jw-09-1999/jw-09-cooltools.html). – NINCOMPOOP

답변

0

클래스를 사용하는 경우 public static final String TITLE = "Some Title"필드로 설정해야합니다. 이 방법을 사용하면 명령에 오류를 입력하지 않아도됩니다. 변수 이름을 입력하기 만하면됩니다.

1

문자열을 두 번 이상 사용하려면 상수를 만드는 것이 가장 좋습니다. 문자열 생성이 두 번 이상되지 않도록합니다. 개체 할당이 무료가 아니므로 성능이 약간 향상됩니다.

루프에서 문자열을 만드는 경우를 생각해보십시오. 상수를 사용하여 대

for(int i=0;i<n;++i){ 
    System.out.println("title"); 
} 

:

for(int i=0;i<n;++i){ 
    System.out.println(TITLE); 
} 

는 문자열 "제목을"할당이 1ms했다 경우, 첫 번째 루프 코드에 대한 실행 시간이 N의 X의이 1ms이다.

또한 등, 반복 유형 (텍스트, 정수) 수정 (널 (null), 고유하지 않은)의 문 키워드에 대한 새로운 문자열을 만드는 것보다 더 빨리 될 것입니다 상수 SQL 문을 구축

String TABLE_SCHEMA = "(" + 
      ID + " integer primary key autoincrement, " + 
      COL_FOO1 + " text, " + 
      COL_FOO2 + " text, " + 
      COL_FOO3 + " text, " + ... 

당신이 한 경우 "text"상수는 그 문자열을 반복해서 생성하지 않으므로 TABLE_SCHEMA 문자열이 더 빨리 생성됩니다.

String TABLE_SCHEMA = "(" + 
      ID + " integer primary key autoincrement, " + 
      COL_FOO1 + TYPE_TEXT + 
      COL_FOO2 + TYPE_TEXT + 
      COL_FOO3 + TYPE_TEXT + ... 
+0

또 다른 장점은 상수를 사용하는 것이 오타를 피하는 것입니다 (옙 오타가 발생할 수 있습니다 ;-)) –

+0

@ JoëlSalamin 또 다른 좋은 이유 :) –

관련 문제