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

我知道评论中出于文档目的意味着什么,但除此之外是什么意思? (我通常只是google这个,但每个非字母符号出现在结果中)

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

我举几个例子:

@Override注释:

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

当你这样做:

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

它会在SuperClass执行someMethod ,对吧? 不会。它会打印“Derived class!”。 这是因为在派生类中,存在@Override事物。 因此派生类会覆盖超类的someMethod

@SuppressWarnings注释:

这是一个方法:

 public void someMethod () { int i; } 

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

 @SuppressWarnings ("unused") public void someMethod () { int i; } 

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

您还可以声明自己的注释并使用reflection来检查它们。 编译器将检查上述2个注释。

@符号用于指定Java Annotation。

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

有内置的Java Annotation和用户定义的Custom Annotation。

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

@符号用于注释 。 根据我的经验,最常见的注释是@Override ,它表示方法是在超类中声明的。 其他常见注释是@Deprecated ,表示不再使用某个方法,但仍然存在向后兼容性,以及@SupressWarnings ,以防止警告出现在编译器中。

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

正如其他人所说,它是Java的注释。 它有助于编译器validation您的代码并通知程序员。

非常简单的代码示例:

 public class SomeClass { @Override public String toString() { return "SomeClass"; } @Deprecated public void doSomeOperation() { // some operation... } } 

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

虽然SomeClass#doSomeOperation的注释会警告程序员该函数本身已被弃用,应该避免使用。

@符号表示注释。 它们提供有关类,字段或方法的信息(它们出现在上面)。 他们无法执行操作。 编译器或特殊注释处理器使用此信息使编写代码更简洁。

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

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

@Entity表示该类是实体类。

类似地,您可以使用许多注释来映射单个列,生成ID,生成版本,关系等。

注释适用于读者或编译器,而不是可执行代码。