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