@
符号表示Java注解。Java注解的作用是为变量、方法、类、接口或其他语言元素添加特殊属性。(这可以在声明注解时进行配置)。当您向某个东西添加注解时,程序的其他部分可以检查某个东西是否有注解。然后它可以使用此信息来执行其所需的任何操作。
让我给你一些例子:
@Override
注解public class SuperClass {
public void someInterestingMethod() {
System.out.println("Superclass!");
}
}
public class DerivedClass extends SuperClass {
public void someInterestngMethod() {
System.out.println("Derived class!");
}
}
当你这样做时:
SuperClass sc = new DerivedClass();
sc.someInterestingMethod();
someInterestingMethod()
调用应该是动态分派的,并打印"Derived class!"
,对吗?嗯,派生类的方法实际上拼写错误了,因此DerivedClass
有了自己独立的方法,称为someInterestngMethod()
,与超类的someInterestingMethod()
完全无关。因此,someInterestingMethod()
不再被覆盖,调用的是超类的实现。
@Override
关键字旨在帮助解决这个问题。它向编译器表明您的意图,即您想要注释的方法成为祖先类方法的重载。如果不是(例如在这种情况下的拼写错误,或者如果SuperClass
API更改并重新命名了方法),则会失败编译,以引起您对错误覆盖的注意。
@SuppressWarnings
注释这里有一个方法:
public void someMethod() {
int i;
}
编译器会发出警告,指出i
从未使用。因此,您可以在方法中添加@SuppressWarnings
来抑制警告:
@SuppressWarnings("unused")
public void someMethod() {
int i;
}
请注意,@SuppressWarnings
注解有一个参数。一些注解有参数,你可以在 JavaDoc 中查找它们。但对于没有参数的注解,您不需要像方法一样添加 ()
。
您也可以声明自己的注解并使用反射来检查它们。编译器将检查上述 2 个注解。
@Override
的实用性。 - Alexander“@”符号用于指定Java注解。
https://zh.wikipedia.org/wiki/Java注解
Java内置注解和用户自定义的自定义注解。
注解可被用于多种用途,例如抑制警告、将方法与URI(Servlet)关联、将变量与资源(JNDI)关联等。
“@”符号用于注解(annotations)。根据我的经验,最常见的注解是@Override
,它表示一个方法在超类中已声明。其他常见的注解包括@Deprecated
,表示该方法不应再使用,但仍存在于向后兼容性中,以及@SupressWarnings
,可防止编译器显示警告。
请注意,实际上可以获取不包含在核心Java库中的注解并声明自己的注解。
@符号表示注解。它们提供关于类、字段或方法的信息(出现在它们上方)。它们不能执行操作。编译器或特殊的注解处理器使用这些信息使代码编写更少冗长。
在Java Persistence API中,您可以使用它们将Java类映射到数据库表中。
例如 @Table() 用于将特定的Java类映射到数据库表格。
@Entity 表示该类是实体类。
同样,您可以使用许多注解来映射单个列、生成id、生成版本、建立关系等。
public class SomeClass {
@Override
public String toString() {
return "SomeClass";
}
@Deprecated
public void doSomeOperation() {
// some operation...
}
}
< p > SomeClass#toString
中的注解 @Override
帮助编译器确定它是从隐式继承到类 Object
的重写函数。
而来自 SomeClass#doSomeOperation
的注解将警告程序员该函数本身已被弃用,应避免使用。
这些注释是给读者或编译器看的,而不是可执行代码。
java At
而不是java @
。 - LF00