eclipse javax.annotation在哪里

yfjy0ee7  于 2023-10-18  发布在  Eclipse
关注(0)|答案(6)|浏览(121)

好吧,这可能是一个NooB问题(我更喜欢C++),但我迷失在Java森林和它的框架森林中。
我正在研究Eclipse RCP开发。为此,我遵循这个著名的教程:http://www.vogella.com/tutorials/EclipseRCP/article.html
在第15步,我需要添加以下依赖包以导入到我的bundle中。javax.annotation javax.injection
问题是我不能选择这些(它们不在选择列表中)我有javax.el javax.servlet.* 和javax.xml。
看看http://docs.oracle.com/javase/7/docs/api/overview-summary.html就知道这应该是标准java的一部分。
我错过了什么明显的错误?

az31mfrm

az31mfrm1#

依赖关系包括版本:

<dependency>
    <groupId>javax.annotation</groupId>
    <artifactId>javax.annotation-api</artifactId>
    <version>1.3.2</version>
</dependency>

参见:http://mvnrepository.com/artifact/javax.annotation/javax.annotation-api
对于较新的jakarta.annotation

<dependency>
   <groupId>jakarta.annotation</groupId>
   <artifactId>jakarta.annotation-api</artifactId>
   <version>1.3.5</version>
</dependency>

参见:https://mvnrepository.com/artifact/jakarta.annotation/jakarta.annotation-api
Java Common Annotations Module java.xml.ws.annotation在Java版本9中被弃用,并在Java版本11中被删除。如果这导致了一个问题,你可以尝试添加javax.annotation。
Java 8的Javadoc可以在这里找到:http://docs.oracle.com/javase/8/docs/api/javax/annotation/package-summary.html

k4emjkb1

k4emjkb12#

您的注解表明这是针对Guava的,因此您需要the JSR305 library,它扩展了javax包。

7xllpg7q

7xllpg7q3#

不确定这是否仍然相关,但对于Java 8,我必须添加以下两个Maven依赖项以使javax.annotation.concurrent.ThreadSafe工作:

<dependency>
        <groupId>javax.annotation</groupId>
        <artifactId>javax.annotation-api</artifactId>
        <version>1.3.2</version>
    </dependency>

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

py49o6xq4#

Javax注解包含在这个依赖项中。这是目前的最新版本。
对maven

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

For Gradle

compile('com.google.code.findbugs:jsr305:3.0.2')

tp5buhyn

tp5buhyn5#

在Java版本>= 6中,您不需要显式添加它们。
它是JDK的一部分。只是尝试跳过添加它们,也许
说明书已经过时了。
在Java 6之前,你需要添加这个jar,我想:jsr250-API-1.0.jar
http://central.maven.org/maven2/javax/annotation/jsr250-api/1.0/
http://download.java.net/maven/2/javax/annotation/jsr250-api/1.0/

vcirk6k6

vcirk6k66#

如果您正在寻找nullable注解,JSpecify是现代的方式。
@Nullable

static void print(@Nullable String x) {
  System.out.println(String.valueOf(x));
}

更有趣的是,他们有@NullMarked,这表明整个事情都被检查为空。如果没有@Nullable标记,则保证没有null出现。

@NullMarked
public class Strings {
  public static String nullToEmpty(@Nullable String x) {
    return (x == null) ? "" : x;
  }

  public static int spaceIndex(String x) {
    return x.indexOf(' ');
  }
}

相关问题