注解类package test;import java.lang.annotation.Retention;
import java.lang.annotation.RetentionPolicy;@Retention(RetentionPolicy.RUNTIME)
public @interface AnnotationTest {
TES value();
}
enum TES{
WORK;
}调用类package test;import java.lang.reflect.InvocationTargetException;
import java.lang.reflect.Method;public class DeprecatedTest {
@AnnotationTest(TES.WORK)
public void doSomeThing(){
System.out.println("out something");
}
public static void main(String[] args){
Class<DeprecatedTest> deprecate = DeprecatedTest.class;
try {
Method method = deprecate.getMethod("doSomeThing", new Class[]{});
Object obj = deprecate.newInstance();
method.invoke(obj, new Object[]{});
AnnotationTest annotationTest = method.getAnnotation(AnnotationTest.class);
annotationTest.value();
switch (annotationTest.value()) {
case WORK:
System.out.println("---------1-------");
break; default:
break;
}
} catch (SecurityException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (NoSuchMethodException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (InstantiationException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (IllegalAccessException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (IllegalArgumentException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (InvocationTargetException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
}
抛出的异常
Exception in thread "main" java.lang.IllegalAccessError: tried to access class test.TES from class $Proxy1
at $Proxy1.value(Unknown Source)
at test.DeprecatedTest.main(DeprecatedTest.java:18)是什么问题??
import java.lang.annotation.RetentionPolicy;@Retention(RetentionPolicy.RUNTIME)
public @interface AnnotationTest {
TES value();
}
enum TES{
WORK;
}调用类package test;import java.lang.reflect.InvocationTargetException;
import java.lang.reflect.Method;public class DeprecatedTest {
@AnnotationTest(TES.WORK)
public void doSomeThing(){
System.out.println("out something");
}
public static void main(String[] args){
Class<DeprecatedTest> deprecate = DeprecatedTest.class;
try {
Method method = deprecate.getMethod("doSomeThing", new Class[]{});
Object obj = deprecate.newInstance();
method.invoke(obj, new Object[]{});
AnnotationTest annotationTest = method.getAnnotation(AnnotationTest.class);
annotationTest.value();
switch (annotationTest.value()) {
case WORK:
System.out.println("---------1-------");
break; default:
break;
}
} catch (SecurityException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (NoSuchMethodException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (InstantiationException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (IllegalAccessException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (IllegalArgumentException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (InvocationTargetException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
}
抛出的异常
Exception in thread "main" java.lang.IllegalAccessError: tried to access class test.TES from class $Proxy1
at $Proxy1.value(Unknown Source)
at test.DeprecatedTest.main(DeprecatedTest.java:18)是什么问题??
解决方案 »
- spring怎样在service层控制事务呢?
- could not bind value '0' to parameter: 1; java.lang.Integer
- 通过http://localhost:8080调用servlet
- hibernate能mapping oracle10g中的long字段吗
- 急:将2个xml合并为1个xml(使用dom4j)
- SSH+DWE搭配效果怎么样?
- 一个session监听的问题
- 关于用Junit测试struts模式开发的东西
- 在struts中,当form的元素不固定时,如何处理?急!!!
- SSH问题
- middlegenide无法完成建立build.xml文件?
- Java编程思想附带的包怎么import?
2.如果非要和注解一个文件的话enum必须是public,但一个源文件中只能有一个public
所以你要把枚举改成注解的内部枚举
public @interface 注解{
public(可选因为只能是public) enum TES {
WORK;
}}
这样就可以了