Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/346.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 注释方法可以接受参数吗?_Java_Annotations - Fatal编程技术网

Java 注释方法可以接受参数吗?

Java 注释方法可以接受参数吗?,java,annotations,Java,Annotations,我很少写注释,但它在java框架中广泛使用 我已经调查了注释源,我有一个问题 我所看到的所有注释方法源都不接受参数 示例(来自spring mvc): 注释方法可以接受参数吗?简短回答:否 注释实际上没有方法。它们有属性(带有可选的默认值),这些属性在语法上与方法类似。简短回答:否 注释实际上没有方法。它们有一些属性(带有可选的默认值),这些属性在语法上类似于方法。长答案呢?您可以添加更多的属性,这些属性在语义上类似于参数。我的意思是@MyAnnotation(myMethodLikeAttri

我很少写注释,但它在java框架中广泛使用

我已经调查了注释源,我有一个问题

我所看到的所有注释方法源都不接受参数

示例(来自spring mvc):

注释方法可以接受参数吗?

简短回答:否

注释实际上没有方法。它们有属性(带有可选的默认值),这些属性在语法上与方法类似。

简短回答:否


注释实际上没有方法。它们有一些属性(带有可选的默认值),这些属性在语法上类似于方法。

长答案呢?您可以添加更多的属性,这些属性在语义上类似于参数。我的意思是@MyAnnotation(myMethodLikeAttribute=“maybeNotStringButBoolean”、myParamLikeAttribute1=“paramVal1”、myParamLikeAttribute2=“paramVal2”)那么长答案呢?您可以添加更多语义类似于params的属性。我的意思是类似于@MyAnnotation(myMethodLikeAttribute=“maybeNotStringButBoolean”,myParamLikeAttribute1=“paramVal1”,myParamLikeAttribute2=“paramVal2”)
@Target({TYPE, FIELD, METHOD})
@Retention(RUNTIME)
public @interface Resource {
    /**
     * The JNDI name of the resource.  For field annotations,
     * the default is the field name.  For method annotations,
     * the default is the JavaBeans property name corresponding
     * to the method.  For class annotations, there is no default
     * and this must be specified.
     */
    String name() default "";

    /**
     * The name of the resource that the reference points to. It can
     * link to any compatible resource using the global JNDI names.
     *
     * @since Common Annotations 1.1
     */

    String lookup() default "";

    /**
     * The Java type of the resource.  For field annotations,
     * the default is the type of the field.  For method annotations,
     * the default is the type of the JavaBeans property.
     * For class annotations, there is no default and this must be
     * specified.
     */
    Class<?> type() default java.lang.Object.class;

    /**
     * The two possible authentication types for a resource.
     */
    enum AuthenticationType {
            CONTAINER,
            APPLICATION
    }

    /**
     * The authentication type to use for this resource.
     * This may be specified for resources representing a
     * connection factory of any supported type, and must
     * not be specified for resources of other types.
     */
    AuthenticationType authenticationType() default AuthenticationType.CONTAINER;

    /**
     * Indicates whether this resource can be shared between
     * this component and other components.
     * This may be specified for resources representing a
     * connection factory of any supported type, and must
     * not be specified for resources of other types.
     */
    boolean shareable() default true;

    /**
     * A product specific name that this resource should be mapped to.
     * The name of this resource, as defined by the <code>name</code>
     * element or defaulted, is a name that is local to the application
     * component using the resource.  (It's a name in the JNDI
     * <code>java:comp/env</code> namespace.)  Many application servers
     * provide a way to map these local names to names of resources
     * known to the application server.  This mapped name is often a
     * <i>global</i> JNDI name, but may be a name of any form. <p>
     *
     * Application servers are not required to support any particular
     * form or type of mapped name, nor the ability to use mapped names.
     * The mapped name is product-dependent and often installation-dependent.
     * No use of a mapped name is portable.
     */
    String mappedName() default "";

    /**
     * Description of this resource.  The description is expected
     * to be in the default language of the system on which the
     * application is deployed.  The description can be presented
     * to the Deployer to help in choosing the correct resource.
     */
    String description() default "";
}