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

时间:2015-08-05 01:34:13

标签: java symbols

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

6 个答案:

答案 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)

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