The annotation @Xxxx is disallowed for this location

一、原因

翻译下:这个@Xxxx注解不允许放在此位置。有可能你的这个注解只能用来注解方法的参数,它应该放在方法的参数前面,你却把它放在了方法的上面。

二、判断注解放置的正确位置

1、查看注解定义的源码

myeclipse: 按住alt键,接着把鼠标放在注解上,最后点击。其他编辑工具查看源码可网上查阅资料
这里写图片描述
通过@Target(ElementType.PARAMETER) 可以确定@ResponseBody这个注解,只能用来注解方法的参数。
2,参照表格
@Target注解为元注解,是用来在定义其他注解时指明所定义注解适用的场合,即可以用来注解方法,类,或方法的参数。
ElementType是枚举类型,其每一个元素表识了一种适用场合。如下图枚举类型的各个值,及其适用场合:

元素类型 注解适用场合
TYPE 类(包括enum)和接口
METHOD 方法
PARAMETER 方法或构造器参数
FIELD 成员域(即成员变量)
CONSTRUCTOR 构造器
LOCAL_VARIABLE 局部变量
PACKAGE
ANNOTATION_TYPE 注解类型声明

当不确定注解放在那里时,查看注解的Target,看它的元素类型,然后对照此表就可知道。现在我们可以去看一下我们熟悉的@Override注解,验证下是否是如此,去吧,骚年!

猜你喜欢

转载自blog.csdn.net/gao_zhennan/article/details/81168075