有个接口写成这样:
public @interface CreateInfo{}
这里的@代表什莫含义,在jdk5.0中,@符号都有什莫含义,有没有全面的介绍。
还有我们使用的框架中,在类的开始有类似:
@ActionInterceptors()
@AccessAuth(SystemDiv.FAC_NOR) --控制权限
@Forward(normal = "p01.jsp") --正常跳转
这种写法有什莫含义,在框架中大概如何实现的,有这方面经历的高手指点下思路。

解决方案 »

  1.   

    @interface 不是interface,是注解类
    这个玩意是jdk1.5之后加入的,java没有给它新的关键字,所以就用@interface 这么个东西表示了
    这个注解类,就是定义一个可用的注解,包括这个注解用于什么地方,是类,还是方法,还是property,还是方法入参等等,还有这个注解是否编译后进入class
    比如我们知道的用于javadoc的注解,是不进入class文件的。
    然后在后面你就可以用这个注解写代码了
    详细的内容还是看看java1.5的注解那部分吧,网上有很多
      

  2.   

    annotation注解的意思,很多框架都有对注解的支持,也有相应的规范,ejb3中的JPA是一个很典型的例子。
      

  3.   


    同意steven_cheng的说法,在这里再举一个实例来进一步说明:
    定义新的注释类型与创建接口有很多类似之处,只不过 interface 关键字之前要有一个 @ 符号。
    请看下面的代码:
    package com.oreilly.tiger.ch06;
    /**
     * Marker annotation to indicate that a method or class
     *   is still in progress.
     */
    public @interface InProgress { }
    如果编译这个注释类型,并确信其位于类路径中,那么就可以在自己的源
    代码方法中使用它,以指出某个方法或类仍在处理中:
    @com.oreilly.tiger.ch06.InProgress
    public void calculateInterest(float amount, float rate) {
      // Need to finish this method later
    }
    注释类型的使用方法和内置注释类型的使用方法完全相同,只不过要同时使用名称和所在的包来指示定制注释。
    当然,一般的 Java 规则仍然适用,您可以导入该注释类型,直接使用 @InProgress 引用它。
    更多内容,参见:
    http://www.ibm.com/developerworks/cn/java/j-annotate1/
    http://www.ibm.com/developerworks/cn/java/j-annotate2.html
      

  4.   

    @test(1000)
    简单的说,这段代码意思就是单元测试的时候,此方法在1000毫秒后结束运行。@意为注解,是很强大的东西。
      

  5.   


    这个框架中的写法是实现“零配置”支持的吧?
    在Struts2中就有这样的用法,通过在类的开始写这样的东西,可以避免手动配置struts.xml中的内容~
    不知道你所说的框架是不是也是类似的用法呢?