상수 정의
1. [필수] 매직 값(즉, 정의되지 않은 상수)은 코드에 직접 나타날 수 없습니다.
카운터 예시: String key =" Id # taobao _"+ tradeId;
cache . put(key , value);
2. , 소문자 l은 사용할 수 없습니다. 소문자는 숫자 1과 쉽게 혼동되어 오해를 불러일으킬 수 있습니다.
설명: Long a = 2 l; 숫자로 21로 쓰나요, 아니면 Long으로 2로 쓰나요?
3. 모든 상수를 유지하려면 상수 클래스를 사용하지 마세요. 기능을 별도로 유지하십시오. 예를 들어, 캐시 관련 상수는 CacheConsts 클래스 아래에 배치됩니다. 시스템 구성 관련 상수는 ConfigConsts 클래스 아래에 배치됩니다.
참고: 크고 포괄적인 상수 클래스에서는 수정된 상수를 찾기 위해 검색 기능을 사용해야 하는데, 이는 이해와 유지 관리에 도움이 되지 않습니다.
4. [권장] 상수 재사용에는 애플리케이션 간 공유 상수, 애플리케이션 내 공유 상수, 하위 프로젝트 내 공유 상수, 패키지 내 공유 상수, 클래스 내 공유 상수의 5가지 수준이 있습니다.1) 애플리케이션 간에 상수를 공유합니다. 일반적으로 클라이언트 jar의 상수 디렉터리에 있는 타사 라이브러리에 배치됩니다.
2) 애플리케이션 내 공유 상수: 라이브러리 모듈의 상수 디렉터리에 위치합니다.
카운터 예:이해하기 쉬운 변수는 애플리케이션 내에서 공유 상수로 균일하게 정의되어야 합니다. 두 명의 공성 엔지니어가 두 클래스에서 "예"를 나타내는 변수를 정의했습니다. 클래스 A: public static final String YES = " yes " ;
클래스 B: public static final String YES = " y " ;
A . YES . equals(B . YES) , true로 예상되었지만 실제로는 false를 반환하여 온라인 질문이 발생했습니다.
3) 하위 프로젝트 내의 공유 상수, 즉 현재 하위 프로젝트의 상수 디렉터리에 있습니다.
4) 패키지 내 공유 상수, 즉 현재 패키지 아래의 별도 상수 디렉터리에 있습니다.
5) 클래스 내 공유 상수: 클래스 내부에서 직접 비공개 정적 최종 정의.
5. [권장] 변수 값이 범위 내에서만 변경되는 경우 Enum 클래스를 사용하세요. 이름 이외의 확장 속성이 있는 경우에는 Enum 클래스를 사용해야 합니다. 아래 예제의 숫자는 요일을 나타내는 확장 정보입니다.
긍정적 예:
public Enum { MONDAY( 1 ) , TUESDAY( 2 ) , WEDNESDAY( 3 ) , THURSDAY( 4 ) , FRIDAY( 5 ) ,SATURDAY( 6 ) , SUNDAY( 7 );