在Java中@符号是什么意思?

in java what does the @ symbol mean?

我知道出于文档目的的注释中的含义,但除此之外,它还意味着什么? (我通常只会在Google上搜索,但结果中会显示每个非字母符号)


@符号表示Java注释。 Java注释的作用是,它为变量,方法,类,接口或其他语言元素添加了特殊的属性。 (可以在声明注释时进行配置)。向某事物添加注释时,程序的其他部分可以检查某事物是否具有注释。然后,它可以使用此信息来做他们需要的任何事情。

让我给你举一些例子:

@Override批注:

1
2
3
4
5
6
7
8
9
10
11
12
public class SuperClass {
    public void someMethod () {
        System.out.println ("Superclass!");
    }
}

public class DerivedClass extends SuperClass {
    @Override
    public void someMethod () {
        System.out.println ("Derived class!");
    }
}

当您这样做时:

1
2
SuperClass sc = new DerivedClass ();
sc.someMethod ();

它将在SuperClass中执行someMethod,对吗?不会。它将显示"派生类!"。这是因为在派生类中有@Override这个东西。因此,派生类将覆盖超类的someMethod

@SuppressWarnings注释:

这是一个方法:

1
2
3
public void someMethod () {
    int i;
}

将会有一个编译器警告说,从未使用i。因此,您可以将@SuppressWarnings添加到方法中以禁止显示警告:

1
2
3
4
@SuppressWarnings ("unused")
public void someMethod () {
    int i;
}

请注意,@SuppressWarnings注释有一个参数。一些注释具有参数,您可以在javadoc中查找它们。但是对于那些没有参数的对象,则不需要像方法一样添加()

您也可以声明自己的注释并使用反射进行检查。上面的2条注释将由编译器检查。


@符号用于指定Java注释。

https://zh.wikipedia.org/wiki/Java_annotation

有内置的Java注释和用户定义的自定义注释。

注释以各种方式使用,例如抑制警告,将方法与URI(Servlet)关联,将变量与资源(JNDI)关联等。


@符号用于注释。以我的经验,最常见的注释是@Override,它表示方法是在超类中声明的。其他常见的注释包括@Deprecated@SupressWarnings,以表示向后兼容,该方法应不再使用,而为了向后兼容而仍然存在,以防止警告出现在编译器中。

请注意,实际上有可能获得核心Java库中未包含的注释,并声明自己的注释。


@符号表示注释。它们提供有关类,其字段或方法的信息(在其上方)。他们无法执行操作。编译器或特殊注释处理器使用此信息来减少编写代码的繁琐程度。

在Java Persistence API中,可以使用它们将Java类与数据库表进行映射。

例如
@表()
用于将特定的Java类映射到日期基表。

@实体
表示该类是实体类。

同样,您可以使用许多注释来映射各个列,生成ID,生成版本,关系等。


就像其他建议一样,它是Java的注释。它有助于编译器验证您的代码并通知程序员。

非常简单的代码示例:

1
2
3
4
5
6
7
8
9
10
11
12
public class SomeClass {

    @Override
    public String toString() {
        return"SomeClass";
    }

    @Deprecated
    public void doSomeOperation() {
        // some operation...
    }
}

SomeClass#toString中的注释,即@Override,可帮助编译器确定它是从隐式继承到类Object的重写函数。

尽管SomeClass#doSomeOperation中的注释将警告程序员,该函数本身已被弃用,应避免使用。


注释是供阅读器或编译器使用的,而不是可执行代码。