Как решить нулевую проверку Idea на массивах?JAVA

Программисты JAVA общаются здесь
Anonymous
Как решить нулевую проверку Idea на массивах?

Сообщение Anonymous »

В пакете info.java я добавляю конфигурацию нулевой проверки по умолчанию: < /p>
@DefaultNonNull // means all params and vars are nonnull by default

Null-проверка идеи в порядке , за исключением массивов . На массиве, например: < /p>
@Nullable String @Nullable [] arr = new String[]{"a", "b", "c", null};
< /code>
Хотя я устанавливаю массив и его элементы, чтобы быть нулевыми, идея все еще напоминает мне, что есть нулевый элемент: < /p>

'null' хранятся в массиве @notnull elements < /p>
< /blockquote>

Как сделать @nullable работает?
Версия идеи:
IntelliJ IDEA 2025.1 (Community Edition)
Build #IC-251.23774.435, built on April 14, 2025
Source revision: 9b2a2c261c093
Runtime version: 21.0.6+9-b895.109 amd64 (JCEF 122.1.9)
VM: OpenJDK 64-Bit Server VM by JetBrains s.r.o.
Toolkit: sun.awt.windows.WToolkit
Windows 10.0
Kotlin plugin: K2 mode
GC: G1 Young Generation, G1 Concurrent GC, G1 Old Generation
Memory: 2048M
Cores: 16
Registry:
ide.experimental.ui=true
llm.show.ai.promotion.window.on.start=false
terminal.new.ui=true
Non-Bundled Plugins:
de.kontext_e.idea.plugins.jqa (2.0)
Lombook Plugin (251.23774.460)
org.jetbrains.plugins.github (251.23774.435-IU)
com.alibabacloud.intellij.cosy (2.3.0)
Kotlin: 251.23774.435-IJ

и вот defaultnonnull и nullable :
import javax.annotation.Nonnull;
import javax.annotation.meta.TypeQualifierDefault;
import javax.annotation.meta.TypeQualifierNickname;
import javax.annotation.meta.When;
import java.lang.annotation.Documented;
import java.lang.annotation.ElementType;
import java.lang.annotation.Retention;
import java.lang.annotation.RetentionPolicy;
import java.lang.annotation.Target;

@Documented
@Retention(RetentionPolicy.RUNTIME)
@Nonnull(when = When.ALWAYS)
@TypeQualifierNickname
@Target({
ElementType.TYPE,
ElementType.METHOD,
ElementType.CONSTRUCTOR,
ElementType.PACKAGE,
})
@TypeQualifierDefault({
ElementType.METHOD,
ElementType.FIELD,
ElementType.PARAMETER,
ElementType.LOCAL_VARIABLE,
ElementType.TYPE_PARAMETER,
ElementType.TYPE_USE,
})
public @interface DefaultNonNull {
}
< /code>
и… < /p>
import javax.annotation.Nonnull;
import javax.annotation.meta.TypeQualifierNickname;
import javax.annotation.meta.When;
import java.lang.annotation.Documented;
import java.lang.annotation.ElementType;
import java.lang.annotation.Retention;
import java.lang.annotation.RetentionPolicy;
import java.lang.annotation.Target;

@Documented
@Nonnull(
when = When.MAYBE
)
@Retention(RetentionPolicy.RUNTIME)
@TypeQualifierNickname
@Target({
ElementType.METHOD,
ElementType.FIELD,
ElementType.PARAMETER,
ElementType.LOCAL_VARIABLE,
ElementType.TYPE_USE,
})
public @interface Nullable {
}


Подробнее здесь: https://stackoverflow.com/questions/796 ... -on-arrays

Вернуться в «JAVA»