我知道评论中出于文档目的意味着什么,但除此之外是什么意思? (我通常只是谷歌这个,但每个非字母符号出现在结果中)
答案 0 :(得分:23)
@符号表示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 ();
它将执行someMethod
中的SuperClass
,对吗?不会。它会打印“Derived class!”。这是因为在派生类中,存在@Override
这个问题。因此,派生类会覆盖超类的someMethod
。
@SuppressWarnings
注释:
这是一种方法:
public void someMethod () {
int i;
}
会有一个编译器警告说从未使用过i
。因此,您可以将@SuppressWarnings
添加到方法禁止警告:
@SuppressWarnings ("unused")
public void someMethod () {
int i;
}
请注意,@SuppressWarnings
注释有一个参数。一些注释具有参数,您可以在javadoc中查找它们。但对于那些没有参数的人,您不需要像方法一样添加()
。
您还可以声明自己的注释并使用反射来检查它们。上述2个注释将由编译器检查。
答案 1 :(得分:7)
@符号用于指定Java Annotation。
https://en.wikipedia.org/wiki/Java_annotation
内置Java Annotation和用户定义的Custom Annotation。
注释以各种方式使用,例如抑制警告,将方法关联到URI(Servlet),将变量关联到资源(JNDI)等
答案 2 :(得分:2)
@符号用于annotations。根据我的经验,最常见的注释是@Override
,它表示方法是在超类中声明的。其他常见注释为@Deprecated
,表示不再使用某个方法但仍然存在以实现向后兼容,并@SupressWarnings
,以防止警告显示在编译器中。
请注意,实际上可以获取未包含在核心Java库中的注释并声明自己的注释。
答案 3 :(得分:0)
正如其他人所说,这是Java的注释。它有助于编译器验证您的代码并通知程序员。
非常简单的代码示例:
public class SomeClass {
@Override
public String toString() {
return "SomeClass";
}
@Deprecated
public void doSomeOperation() {
// some operation...
}
}
来自SomeClass#toString
的注释@Override
帮助编译器确定它是从隐式继承到类Object
的重写函数。
虽然来自SomeClass#doSomeOperation
的注释会警告程序员该函数本身已被弃用,应该避免使用。
答案 4 :(得分:0)
@符号表示注释。它们提供有关类,其字段或方法的信息(在其上方)。他们无法执行操作。编译器或特殊注释处理器使用此信息来减少编写代码的繁琐程度。
在Java Persistence API中,您可以使用它们来映射Java类和数据库表。
例如 @表() 用于将特定的Java类映射到日期基表。
@实体 表示该类是实体类。
类似地,您可以使用许多注释来映射各个列,生成ID,生成版本,关系等。
答案 5 :(得分:-2)
注释适用于读者或编译器,而不是可执行代码。