自己写了一段Java代码,但是没有正确输出,请高手帮我看看
packagecom.sohu;importjava.lang.reflect.Method;publicclassMyTestAnno{publicstaticvoid...
package com.sohu;
import java.lang.reflect.Method;
public class MyTestAnno {
public static void main(String[] args)throws Exception {
MyTestAnno mta = new MyTestAnno();
Class<?> classType = mta.getClass();
Method[] methods = classType.getMethods();
for(Method m :methods){
if(m.isAnnotationPresent(Anno.class)){
m.invoke(mta, new Object[]{}); //程序执行后,没有任何输出。
}
}
}
@Anno()
public void fun1(){
System.out.println("this is fun1");
}
@Anno()
public void fun2(){
System.out.println("this is fun2");
}
}
@interface Anno{
}
如果我定义的fun1 没有参数,fun2带2个参数,那么应该如何通过遍历Methods的方式,分别去调用这两个方法呢? 展开
import java.lang.reflect.Method;
public class MyTestAnno {
public static void main(String[] args)throws Exception {
MyTestAnno mta = new MyTestAnno();
Class<?> classType = mta.getClass();
Method[] methods = classType.getMethods();
for(Method m :methods){
if(m.isAnnotationPresent(Anno.class)){
m.invoke(mta, new Object[]{}); //程序执行后,没有任何输出。
}
}
}
@Anno()
public void fun1(){
System.out.println("this is fun1");
}
@Anno()
public void fun2(){
System.out.println("this is fun2");
}
}
@interface Anno{
}
如果我定义的fun1 没有参数,fun2带2个参数,那么应该如何通过遍历Methods的方式,分别去调用这两个方法呢? 展开
3个回答
展开全部
import java.lang.reflect.Method;
public class MyTestAnno{
public static void main(String[] args){
MyTestAnno mta = new MyTestAnno();
Class<?> classType = mta.getClass();
Method[] methods = classType.getMethods();
for(Method m :methods){
if(!m.getName().equals("main")){
try{
m.invoke(mta, new Object[]{}); //程序执行后,没有任何输出。
}catch (Exception e) {
}
}
}
}
public void fun1(){
System.out.println("this is fun1");
}
public void fun2(){
System.out.println("this is fun2");
}
}
@interface Anno{
}
改了一些东西吧。你看看,有问题再问。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
m.isAnnotationPresent(Anno.class) 返回的均是false
你自己查查
你自己查查
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询