Android 에서 SDK 를 봉인 할 때 자주 사용 하 는 주석 요약
작업 중 에 우 리 는 협력 업 체 가 호출 할 수 있 도록 기능 모듈 을 라 이브 러 리 로 밀봉 해 야 합 니 다.건장 한 Android Library 를 어떻게 잘 쓰 는 지 에 대해 많은 신경 을 써 야 합 니 다.주 해 를 사용 하면 SDK 가 개발 자 에 게 노출 된 인터페이스 에 제한 을 주어 개발 자가 API 를 잘못 사용 하지 않도록 할 수 있 습 니 다.SDK 를 봉인 할 때 자주 사용 하 는 몇 가지 주 해 를 소개 하 겠 습 니 다.필요 한 분 들 은 참고 하 셔 도 됩 니 다.
1.IntDef 와 StringDef
저 희 는 가끔 int 상수 나 String 상수 로 매 거 진 것 을 대체 할 때 가 있 습 니 다.특히 SDK 를 작성 할 때 는 IntDef 나 StringDef 를 통 해 인터페이스 가 받 아들 일 수 있 는 인 자 를 제한 할 수 있 습 니 다.
예 를 들 어 지정 한
disableChannel
인 터 페 이 스 를 닫 는 데 사용 되 는channel
인터페이스 가 있다.우 리 는 먼저 자신의 주 해 를 정의 할 수 있다@RequirePayChannel
public static final int CHANNEL_UNIONPAY = 0x11000;
public static final int CHANNEL_ALIPAY = 0x12000;
public static final int CHANNEL_WECHAT = 0x13000;
@Retention(RetentionPolicy.SOURCE)
@IntDef({CHANNEL_UNIONPAY,CHANNEL_ALIPAY,CHANNEL_WECHAT})
public @interface RequirePayChannel {}
이렇게 하면@RequirePayChannel
를 통 해 받 아들 일 수 있 는 인 자 를 지정 할 수 있다.
public void enableChannel(@RequirePayChannel int channel) {
// do something
}
이렇게 하면 일부 IDE 는 자동 으로 제안 인 자 를 제공 할 것 이다.지점 범위 밖의 인 자 를 입력 하면 오류 알림 이 발생 하여 컴 파일 할 수 없습니다.특히 여기 서 우 리 는 사용 했다
disableChannel()
.그것 은 컴 파일 러 가 처리 할 때의 처리 방법 을 지정 했다.기본 컴 파일 러 는 상수 값 을 대응 하 는 값 으로 바 꿉 니 다.이 주 해 를 지정 하지 않 으 면 컴 파일 이 완료 되면 이러한 class 파일 을 얻 을 수 있 습 니 다.이렇게 하면 IDE 가 의미 있 는 정 보 를 제시 하지 못 하 게 할 수 있다.또한 특정한 int 수치 로 지정 해 야 합 니 다.그렇지 않 으 면 컴 파일 할 수 없습니다.
따라서 컴 파 일 러 가 이 주해 에 대해 추가 적 인 최적화 처 리 를 하지 않도록 지정 해 야 한다.
2.DrawableRes,StringRes 와 DimenRes
지정 한 자원 파일 의 인 터 페 이 스 를 작성 할 때 자원 주 해 를 통 해 이 방법 이 받 아들 일 자원 형식 을 지정 할 수 있 습 니 다.잘못된 자원 을 지정 하면 컴 파일 할 수 없습니다.다음 코드 에서 저 희 는
@Retention(RetentionPolicy.SOURCE)
방법 으로Animation
자원 의 ID 만 지원 합 니 다.
public void setLogo(@DrawableRes int resurceId) {
// do something
}
잘못된 자원 을 제공 하면 IDE 가 잘못 보 고 됩 니 다.Retention
과@DrawableRes
의 사용 방법 도 비슷 하 다.3.NonNull 과 Nullable
빈 값 을 한 방법 에 전달 하면 잠재 적 인
setLogo
을 일 으 킬 수 있다.우 리 는 이러한 상황 을 극력 피해 야 한다.Drawable
매개 변수 가 빈 값 을 받 아들 일 지 여 부 를 지정 할 수 있다.우리 가 빈 값 을 들 어 올 때 IDE 는 응답 하 는 경 고 를 할 것 이다.우 리 는 이렇게 그것 을 사용 할 수 있다.
public void setContext(@NonNull Context context) {
// do something
}
빈 값 을 입력 하면 경고 가 표 시 됩 니 다.(그러나 코드 는 컴 파일 을 통 해 가능 합 니 다)@StringRes
매개 변수 나 방법 을 수식 하 는 데 사용 되 는 반환 값 이 비어 있 을 수 있 으 며 개발 자 에 게 주요 빈 값 검 사 를 알 립 니 다.
@Nullable
public Context getContext() {return null;}
총결산
이상 은 이 글 의 전체 내용 입 니 다.본 논문 의 내용 이 여러분 의 학습 이나 업무 에 어느 정도 도움 이 되 기 를 바 랍 니 다.궁금 한 점 이 있 으 시 면 댓 글 을 남 겨 주 셔 서 저희 에 대한 지지 에 감 사 드 립 니 다.
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
Kotlin의 기초 - 2부지난 글에서는 Kotlin이 무엇인지, Kotlin의 특징, Kotlin에서 변수 및 데이터 유형을 선언하는 방법과 같은 Kotlin의 기본 개념에 대해 배웠습니다. 유형 변환은 데이터 변수의 한 유형을 다른 데이터...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.