javax.annotation. *에서 @Nullable을 찾을 수 없습니다.


116

@Nullable 주석을 사용 하여 NullPointerExceptions. 인터넷에서 몇 가지 튜토리얼을 찾았는데이 주석이 패키지에서 온다는 것을 알았습니다 javax.annotation.Nullable. 하지만 가져올 때 컴파일 오류가 생성됩니다. 기호를 찾을 수 없습니다.

답변:


146

이 클래스가있는 항아리를 포함해야합니다. 여기에서 찾을 수 있습니다.

Maven을 사용하는 경우 다음 종속성 선언을 추가 할 수 있습니다.

<dependency>
  <groupId>com.google.code.findbugs</groupId>
  <artifactId>jsr305</artifactId>
  <version>3.0.2</version>
</dependency>

그리고 Gradle의 경우 :

dependencies {
  testImplementation 'com.google.code.findbugs:jsr305:3.0.2'
}

74
Google (특히 findbugs 아티팩트)이 javax패키지에 속하는 유형을 제공하는 이유는 무엇 입니까? javax이 유형을 제공 하는 -prefixed groupId 가있는 아티팩트가 없습니까?
앤드류 스완

9
@AndrewSwan 작성자가 com.google.code.findbugsGoogle의 코드 호스팅 솔루션에서 호스팅 되었기 때문에 groupId를 선택한 것 같습니다
matt b

2
Google-findbugs는 jsr305의 참조 구현이므로 javax-packageName을 사용할 수 있습니다.
icyerasor

33

유물이에서로 이동되었습니다 net.sourceforge.findbugs.

<dependency>
    <groupId>com.google.code.findbugs</groupId>
    <artifactId>jsr305</artifactId>
    <version>3.0.0</version>
</dependency>

26

Gradle을 사용하는 경우 다음과 같은 종속성을 포함 할 수 있습니다.

repositories {
    mavenCentral()
}

dependencies {
    compile group: 'com.google.code.findbugs', name: 'jsr305', version: '3.0.0'
}

1
시도했지만 오류가 발생했습니다. org.gradle.api.internal.artifacts에서 인수 [{group = com.google.code.findbugs, name = jsr305, version = 3.0.0}]에 대한 compile () 메서드를 찾을 수 없습니다. dsl.dependencies.DefaultDependencyHandler_Decorated@7b35fdf2.
kamal

위의 예에서 @kamal은 일반적으로 'java'이미 compile구성을 만든 (또는 다른) 플러그인을 적용했다고 가정 합니다 .
mkobit 2016

javax.annotation.Nullable을 가져올 수 없습니다. 내 클래스 경로에 jsr250-api-1.0.jar이 있습니다. 나는 심지어 maven pom <dependency> <groupId>com.google.code.findbugs</groupId> <artifactId>jsr305</artifactId> <version>3.0.0</version> </dependency> Eclipse 업데이트를 시도했지만 오류가 발생했습니다. Missing artifactcom.google.code.findbugs:jsr305:jar:3.0.0 Failure to transfer com.google.code.findbugs:jsr305:jar:3.0.0
Sam-T

마침내 jsr305-3.0.1.jar-일부 이클립스 cp 문제가 작동했습니다. 예, 마침내 외부 jar를 eclipse로 가져온 후 컴파일됩니다
Sam-T

항아리가 런타임에 필요하지 않기 때문에, 사용 compileOnly group...대신의compile group...
레나토

7

누군가 Android 프로젝트를 컴파일하는 동안이 문제가 발생하는 경우 android.support.annotation.Nullable. 따라서 imports 에서 참조한 패키지에주의하십시오 .


4

IntelliJ IDEA에서 외부 적으로 생성 된 Maven 프로젝트를 빌드 할 때이 문제가있는 사람은 대답 대신 다음 종속성을 사용했습니다.

<dependency>
  <groupId>org.jetbrains</groupId>
  <artifactId>annotations</artifactId>
  <version>15.0</version>
</dependency>

이것을 사용하면 프로젝트가 IntelliJ IDEA에서 빌드되고 Maven을 사용하여 자체적으로 빌드 할 수 있습니다.

여기에서 찾을 수 있습니다 .


2
org.jetbrains:annotations:15.0제공 @org.jetbrains.annotations.Nullable하지 않는 주의하십시오 @javax.annotation.Generated. 일부 코드 생성기를 openapi-generator-maven-plugin.
danidemi

3

gradle.build 안에 다음 줄을 추가하여 최신 버전을 추가 할 수 있습니다.

implementation group: 'com.google.code.findbugs', name: 'jsr305', version: '3.0.2'

2

주석이 포함 된 Guava를 사용하고 있습니다.

(Gradle 코드)

compile 'com.google.guava:guava:23.4-jre'

1

Android 프로젝트의 경우 프로젝트 / 모듈 gradle 파일 (build.gradle)을 다음과 같이 변경하여이 오류를 수정할 수 있습니다.

dependencies { implementation 'com.android.support:support-annotations:24.2.0' }

자세한 내용은 여기 를 참조 하십시오 .

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.