关于元注解的问题,不得其解 求助大虾!!!
使用@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 @inte易做图ce 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 --------------------编程问答--------------------
我问你个问题啊
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)是子类的方法,子类方法上的确没有你说的注释啊。楼主把方法重写与类、注解继承搞混了吧 --------------------编程问答--------------------
我知道这里的this指的是之类,@Inherited()注解不是可以标准自定义注解可以被继承的吗 我就是要查看子类上的对应的方法上有没有从父类继承来的注解。 --------------------编程问答--------------------
楼主,你的test方法是重写的方法,不是继承过来的方法好不好!
补充:Java , Java EE