在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,生成版本,关系等。
注释适用于读者或编译器,而不是可执行代码。