关于元注解的问题,不得其解 求助大虾!!!

xingshen100 2013-12-23 03:05:30
使用@Inherited元注解
注解可以被继承。
但是我下面的怎么就不行呢?
1.注解类

package cn.it.test;

import java.lang.annotation.ElementType;
import java.lang.annotation.Inherited;
import java.lang.annotation.Retention;
import java.lang.annotation.RetentionPolicy;
import java.lang.annotation.Target;
@Target(ElementType.METHOD)
@Retention(RetentionPolicy.RUNTIME)
@Inherited//希望子类可以继承
public @interface myannotation{
public String value();
}


2.抽象父类

package cn.it.test;

public abstract class AbstructClas {
@myannotation("check")//对于注解属性名为value的情况,可以不写属性名
public void test() {
}
}



3.子类

package cn.it.test;

import org.junit.Test;

public class ExtendClas extends AbstructClas {
@Test
@Override
public void test() {
System.out.println("here is myannotation test!");
try {
if(this.getClass().getMethod("test",null).isAnnotationPresent(myannotation.class)){
System.out.println("这里有指定的注解!");
}else{
System.out.println("没有指定的注解!");
}

} catch (SecurityException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (NoSuchMethodException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}

}

}


运行结果:
here is myannotation test!
没有指定的注解!


另外,对于借口上的方法,我也试验了,也不能继承呀!不知咋回事,请高人指教
...全文
126 6 打赏 收藏 转发到动态 举报
写回复
用AI写文章
6 条回复
切换为时间正序
请发表友善的回复…
发表回复
wangzhidavl 2013-12-25
  • 打赏
  • 举报
回复
引用 5 楼 xingshen100 的回复:
[quote=引用 4 楼 zhangjihao 的回复:] this.getClass().getMethod("test",null)是子类的方法,子类方法上的确没有你说的注释啊。楼主把方法重写与类、注解继承搞混了吧
我知道这里的this指的是之类,@Inherited()注解不是可以标准自定义注解可以被继承的吗 我就是要查看子类上的对应的方法上有没有从父类继承来的注解。[/quote] 楼主,你的test方法是重写的方法,不是继承过来的方法好不好!
howsun_zh 2013-12-24
  • 打赏
  • 举报
回复
this.getClass().getMethod("test",null)是子类的方法,子类方法上的确没有你说的注释啊。楼主把方法重写与类、注解继承搞混了吧
MiceRice 2013-12-24
  • 打赏
  • 举报
回复
没看出来你贴的这句话有问题啊?而且双引号串里面确实用的是单引号啊: href='#' onclick='delTr(this)' 挺正确的啊。。。
xingshen100 2013-12-24
  • 打赏
  • 举报
回复
引用 4 楼 zhangjihao 的回复:
this.getClass().getMethod("test",null)是子类的方法,子类方法上的确没有你说的注释啊。楼主把方法重写与类、注解继承搞混了吧
我知道这里的this指的是之类,@Inherited()注解不是可以标准自定义注解可以被继承的吗 我就是要查看子类上的对应的方法上有没有从父类继承来的注解。
xingshen100 2013-12-23
  • 打赏
  • 举报
回复
引用 1 楼 ldh911 的回复:
你这个问题,在这里有测试: http://xiangdefei.iteye.com/blog/1044199
我问你个问题啊 var msg = "<tr><td>" + name + "</td><td>" + email + "</td><td>" + phone + "</td><td><a href='#' onclick='delTr(this)'>delete</a></td></tr>"; 不是说双引号中要用单引号吗?这里是怎么回事呢?
MiceRice 2013-12-23
  • 打赏
  • 举报
回复
你这个问题,在这里有测试: http://xiangdefei.iteye.com/blog/1044199

67,512

社区成员

发帖
与我相关
我的任务
社区描述
J2EE只是Java企业应用。我们需要一个跨J2SE/WEB/EJB的微容器,保护我们的业务核心组件(中间件),以延续它的生命力,而不是依赖J2SE/J2EE版本。
社区管理员
  • Java EE
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧