어노테이션은 개발자가 소스 코드를 정적으로 분석하여 추론할 수 없는 의도를 표현하는 데 사용할 수 있는 주석입니다.
어노테이션 종류
@alwaysThrows
해당 함수가 항상 예외를 던진다는 것을 나타내는 어노테이션입니다. 이 어노테이션이 붙은 함수를 오버라이드하는 함수도 동일한 계약을 준수해야 합니다.
@doNotStore
해당 메서드, 게터, 혹은 최상위 게터나 함수에서 반환된 값을 필드나 최상위 변수에 저장하지 말아야 한다는 것을 나타내는 어노테이션입니다.
@experimental
해당 라이브러리나 클래스의 API가 실험적이며 언제든지 변경될 수 있다는 것을 나타내는 어노테이션입니다. 이 어노테이션이 붙은 API가 변경되어도 해당 패키지의 버전이 업데이트되지 않아도 됩니다.
@factory
해당 인스턴스나 스태틱 메서드가 반드시 새로운 객체를 반환하거나 null을 반환해야 함을 나타내는 어노테이션입니다.
@immutable
해당 클래스와 그 하위 클래스들이 불변 객체여야 한다는 것을 나타내는 어노테이션입니다.
@internal
해당 선언이 패키지 외부에서 사용되지 않아야 하며, 해당 패키지의 공개 API가 아니라는 것을 나타내는 어노테이션입니다.
@isTest
해당 함수가 단일 테스트를 실행하는 함수임을 나타내는 어노테이션입니다.
@isTestGroup
해당 함수가 여러 테스트를 그룹으로 실행하는 함수임을 나타내는 어노테이션입니다.
@literal
해당 상수 생성자가 const 키워드를 사용해야 한다는 것을 나타내는 어노테이션입니다.
@mustCallSuper
해당 인스턴스 메서드가 오버라이드되는 메서드에서는 반드시 super 메서드를 호출해야 한다는 것을 나타내는 어노테이션입니다.
@nonVirtual
해당 인스턴스 멤버가 서브타입에서 오버라이드되지 않아야 한다는 것을 나타내는 어노테이션입니다.
@optionalTypeArgs
해당 클래스, 믹스인, 익스텐션, 함수, 메서드, 혹은 타입 정의에서 선언된 제너릭 타입 인자가 옵셔널임을 나타내는 어노테이션입니다.
@protected
해당 인스턴스 멤버가 해당 클래스나 믹스인의 인스턴스와 하위 타입에서만 접근 가능하다는 것을 나타내는 어노테이션입니다.
@required
해당 메서드나 함수에서 선택적 매개변수로 정의된 매개변수가 반드시 인자로 전달되어야 한다는 것을 나타내는 어노테이션입니다.
@sealed
해당 클래스가 슈퍼타입으로 사용될 수 없다는 것을 나타내는 어노테이션입니다.
@UseResult
해당 메서드, 필드, 혹은 게터에서 반환값이 사용되어야 한다는 것을 나타내는 어노테이션입니다.
@visibleForOverriding
해당 인스턴스 멤버가 해당 라이브러리 외부에서는 접근할 수 없지만, 하위 클래스에서 오버라이드하여 사용할 수 있다는 것을 나타내는 어노테이션입니다.
@visibleForTesting
해당 선언이 테스트 코드에서 사용될 수 있도록 일반적으로 허용되지 않는 범위에서 공개되었다는 것을 나타내는 어노테이션입니다.
'Dart > Flutter' 카테고리의 다른 글
[Flutter] 플러터 인앱(in_app_purchase) 정기결제 구현하기 (0) | 2023.03.19 |
---|---|
[Flutter] 플러터 인앱(in_app_purchase) 결제 상품 구매 구현하기 (0) | 2023.03.19 |
[Flutter] Gradlew signingReport를 이용한 SHA1 및 SHA256 키 확인 간편 가이드 (0) | 2023.03.18 |
[Flutter] Error (Xcode): 34 duplicate symbols for architecture arm64 해결하기 (0) | 2023.02.14 |
[Flutter] IOS Update to recommended settings 경고 끄기 (0) | 2023.02.09 |