自从上世纪90年代末在大学里使用JBuilder以来,我就再也没有接触过Java,所以我有点脱离了--不管怎么说,这周我一直在做一个小的Java项目,并且使用Intellij IDEA作为我的集成开发环境,以改变我常规的.Net开发的节奏。
我注意到它支持添加接口和@接口,什么是@接口,它与普通接口有什么不同?
public interface Test {
}与
public @interface Test {
}我做了一些搜索,但找不到很多关于@interface的有用信息。
发布于 2009-05-27 23:10:25
@符号表示注释类型定义。
这意味着它不是一个真正的接口,而是一种新的注释类型--用作函数修饰符,比如@。
请参阅该主题的javadocs entry。
发布于 2014-02-19 15:47:37
接口:
通常,接口公开协定而不公开基础实现细节。在面向对象编程中,接口定义了公开行为但不包含逻辑的抽象类型。实现由实现接口的类或类型定义。
@interface:(注解类型)
以下面的例子为例,它有很多评论:
public class Generation3List extends Generation2List {
// Author: John Doe
// Date: 3/17/2002
// Current revision: 6
// Last modified: 4/12/2004
// By: Jane Doe
// Reviewers: Alice, Bill, Cindy
// class code goes here
}相反,您可以声明一个批注类型
@interface ClassPreamble {
String author();
String date();
int currentRevision() default 1;
String lastModified() default "N/A";
String lastModifiedBy() default "N/A";
// Note use of array
String[] reviewers();
}然后,它可以像下面这样注释一个类:
@ClassPreamble (
author = "John Doe",
date = "3/17/2002",
currentRevision = 6,
lastModified = "4/12/2004",
lastModifiedBy = "Jane Doe",
// Note array notation
reviewers = {"Alice", "Bob", "Cindy"}
)
public class Generation3List extends Generation2List {
// class code goes here
}PS:许多注解替换了代码中的注释。
参考:http://docs.oracle.com/javase/tutorial/java/annotations/declaring.html
发布于 2009-05-27 23:16:16
关键字interface表示您在Java语言中声明了一个传统的接口类。
@interface关键字用于声明新的注释类型。
有关语法的说明,请参阅注释上的docs.oracle tutorial。
如果您真的想深入了解@interface的详细含义,请参阅JLS。
https://stackoverflow.com/questions/918393
复制相似问题