지 않는 이유는 무엇@NotNull 또는@널에 존재하는 나의 프로젝트가 있습니까?

0

질문

나는 프로그래밍 IntelliJ,그리고 나는 단지 작업에는 Java 프로젝트를 만들고 싶었 매개 변수는 주석으로 @NotNull. 하지만 IntelliJ 말한 그것은 존재하지 않습니다. 확인했는데 모든 java 파일에 없습니다. 나를 그렇게 혼란,그리고 나는 사용하지 않는 메이븐 또는 gradle,다만 기본 자바 프로젝트입니다. 나는 아이디어가 있지 않은 무엇이 일어나고 있습니다.

다음 예를 참고하십시오.

package com.company;


    public class Main {
         public static void main(String[] args){
                testF(null);
         }
         public static void testF (@NotNull Integer... numbers){
            for(Integer integer: numbers){
                   System.out.println(integer);
          }
     }
}

오류가 발생하에서 말하는"를 해결할 수 없는 상징 NotNul:10"(시@앞에서)

annotations intellij-idea java
2021-11-22 22:38:50
1

최고의 응답

0

Java 자체하지 않는 선박으로 이러한 주석이 있습니다.

대신에,거기에는 약 10 이 서로 호환되지 않에서 아이디어는 대부분의 작업은 완전히 다르게 적용하는 다른 의미가 무엇 NonNull 즉,당신은 그것을 둘 수 있는,그리고 어떻게 작동합니다.

Oof. 이것은 매우 불행한 일이 기본으로 사용하는 아이디어를 주석을 추가 이 내용은 훨씬 우수한 선택과 같은 주어진,그것은 것 전적으로 호환되지 않환하여 기존 코드로의 침체 obsolecence 과는 달리, Optional.

그래서,당신이 좋아하는 일 찾기고,그것을 포함한 프로젝트에서 동일한 방법은 당신이 포함되는 모든 타사 종속적에 포함하여 귀하의 Maven/Gradle/Ant+ivy/etc(빌드 파일의 목록의 종속성).

Intellij 는 그것의 자신의 취 null 이 아닌과 입니다. 그것은 아마도 가장 편리합니다. 그에 대한 아이디어를 이러한 주석을 의미는 열등1. 검사 프레임워크가 최고,이클립스는 먼 최고의 두 번째,모든 것이 다른 사람(를 포함하여 intellij s)공유하는 세 번째 장소다. 가을에서 찾을 수 있 검사 프레임워크 또는 거 같 eclipse 에서 이러한 주석이 있습니다. 그러나 내가 의심 intellij 의 null 시스템 확인 할 수 있는 완전히 이해 더 많은 고급 추가 @PolyNull다,그래서 이 추가적인 표현력으로 낭비하고 있습니다. 보너스로,intellij 선박의 무리와 함께 데이터에 대해 무엇이 올바른 미리 부드러다.주석 것에 중요한 라이브러리입니다.

마지막 중 하나입니다 중요한:가장 일반적으로 사용되는 자바 라이브러리 포함 java.* 자체에 있지 않는 이러한 주석작업 및 반 null 주석 코드는 가장 확실히 매우 실망 운동;비용을 크게 이득을 중요하다. 유일한 솔루션을 수정하는 라이브러리를 사용할 권리와 정보를 미리 부드러다.하지만 이것은 작품의 톤. 다행히도,intellij 을 많이 했습니다.

제가 기대하는 것(이클립스가 이러),는 quickfix(CMD+1mac,CTRL+1 에 비 mac,최소자의 경우 메모리의 기본 단축키를 나)에는'자동으로 추가 이클립스's 미리 부드러다.주석을 클래스패스'(또는 귀하의 경우에는,intellij 의,of course). 는 경우에는 어떻게든 나타나지 않는, 이 페이지에서 intellij 문서 를 설명하는 방법을 정확하게 추가 org.jetbrains.annotations 라이브러리를 포함하는들을 미리 부드러다.주석을 귀하의 프로젝트입니다. 사실,이러한 문서를 나타내는 것,참으로,quickfix 메뉴가 제안 당신은 옵션이 자동으로 추가 이 라이브러리는 솔루션으로 오류는 당신 @NonNull 노드에서의 소스 코드입니다.

[1]장에서 미리 부드러다.주석 제한이 자신에 의해 상당히 수 있도록 주석에서만 필드 방법(뜻:무엇을 반환한다)및 매개 변수를 작성할 수 있습니다. 그러나,하나 있을 수 있는 확실히지 않는 null List 의할 수도 있었던-null Map 인스턴스는 지도 확실히지 않는 null String 을 수 있습 null Integer: @NonNull List<@Nullable Map<@NonNull String, @Nullable Integer>>. 주석 시스템 가능을 쓰는 경우에만 귀하의 주석은 설정으로 TYPE_USE. 검사 프레임워크 및 이클립스's 미리 부드러다.주석처럼 일하는 대부분의 다른 사람들이지 않고,따라서 적은 표현입니다. CheckerFramework 한 단계 더 나아가서 작성할 수 있게 해준의 개념을'어느 미리 부드러다.괜찮'. 다만 다음과 같은 제네릭은 3 양식(List<Integer>List<? super Integer>List< extends Integer>면,제네릭이 참여,2nullities(중지 않 null,또는 확실히 null 은 허용)은 더 이상 충분에,당신이 더 필요 nullities. 검사 프 @PolyNull 이할 수 있습 링크 nullities:할 수 있는 예를 들어 쓰이는 방법에 checkerframework 지만 아마도 그것을 쓰는 제대로 입력 intellij 의,또는 그 문제에 대한 이클립스's:

public void duplicateFirstMatch(List<T> elems, Predicate<T> matcher);

아이디어가:이 방법을 실행하는 정규에 대한 각각의 요소의 목록에서,그리고 일치하는 요소를 추가합니다. 이 방법을 작동할 수 있는 경우 T 으로 간주됩'@null 이 아닌'(주는 null 값은 null 이 될 수 없다 추가 코드,너무 아닌 미리 부드러다.의 요소가 될 수 없을 위반하여다)하지만,그것은 작품은 단지뿐만 아니라우 T@Nullable제공하는 정도의 @Nullable T 물론:이 코드가 추가 할 수 있습니다 null 목록 하지만 괜찮아요.

따라서 T 도 널나 null 이 아닌 경우,그러나 Ts 에서 언급된 서명 할 필요가 일치하는 자신의 nullities. @PolyNull 이 문제를 해결합니다.

2021-11-22 22:56:48

다른 언어로

이 페이지는 다른 언어로되어 있습니다

Русский
..................................................................................................................
Italiano
..................................................................................................................
Polski
..................................................................................................................
Română
..................................................................................................................
हिन्दी
..................................................................................................................
Français
..................................................................................................................
Türk
..................................................................................................................
Česk
..................................................................................................................
Português
..................................................................................................................
ไทย
..................................................................................................................
中文
..................................................................................................................
Español
..................................................................................................................
Slovenský
..................................................................................................................