当前位置:编程学习 > JAVA >>

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

使用@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!
没有指定的注解!


另外,对于借口上的方法,我也试验了,也不能继承呀!不知咋回事,请高人指教 --------------------编程问答-------------------- 你这个问题,在这里有测试:
http://xiangdefei.iteye.com/blog/1044199 --------------------编程问答--------------------
引用 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>";
不是说双引号中要用单引号吗?这里是怎么回事呢? --------------------编程问答-------------------- 没看出来你贴的这句话有问题啊?而且双引号串里面确实用的是单引号啊:
  href='#' onclick='delTr(this)'
挺正确的啊。。。 --------------------编程问答-------------------- this.getClass().getMethod("test",null)是子类的方法,子类方法上的确没有你说的注释啊。楼主把方法重写与类、注解继承搞混了吧 --------------------编程问答--------------------
引用 4 楼 zhangjihao 的回复:
this.getClass().getMethod("test",null)是子类的方法,子类方法上的确没有你说的注释啊。楼主把方法重写与类、注解继承搞混了吧

我知道这里的this指的是之类,@Inherited()注解不是可以标准自定义注解可以被继承的吗  我就是要查看子类上的对应的方法上有没有从父类继承来的注解。 --------------------编程问答--------------------
引用 5 楼 xingshen100 的回复:
Quote: 引用 4 楼 zhangjihao 的回复:

this.getClass().getMethod("test",null)是子类的方法,子类方法上的确没有你说的注释啊。楼主把方法重写与类、注解继承搞混了吧

我知道这里的this指的是之类,@Inherited()注解不是可以标准自定义注解可以被继承的吗  我就是要查看子类上的对应的方法上有没有从父类继承来的注解。


楼主,你的test方法是重写的方法,不是继承过来的方法好不好!
补充:Java ,  Java EE
CopyRight © 2012 站长网 编程知识问答 www.zzzyk.com All Rights Reserved
部份技术文章来自网络,