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

求救 大侠速度来看。

 交谈中请勿轻信汇款、中奖信息,勿轻易拨打陌生电话。
public  static ArrayList<Mtd>  getMethods(String className)
{
System.out.println("1");
Object ob = null;
try {
ob = Class.forName(className).newInstance();

} catch (InstantiationException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (IllegalAccessException e) {
System.out.println("出现IllegalAccessException异常");
// TODO Auto-generated catch block
e.printStackTrace(); } catch (ClassNotFoundException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
System.out.println("1");
Method[] m=ob.getClass().getMethods();
System.out.println("1");
ArrayList <Mtd> mtdlist =new  ArrayList<Mtd>();

for(int i=0;i<m.length;i++)
       {
Mtd newmtd=new  Mtd(); 
    String mname=m[i].getName(); 
    if(mname.equals("wait")||mname.equals("hashCode")||mname.equals("getClass")||mname.equals("equals")||mname.equals("toString")||mname.equals("notify")||mname.equals("notifyAll"))
         continue;
//System.out.println(mname);
    newmtd.setName(m[i].getName());   
        Type[] t=m[i].getParameterTypes();
      ArrayList<String>   inputtypelist = new ArrayList<String>(); 
      int g=0;
      String input="";
        for(int j=0;j<t.length;j++)
        {
         String str=t[j].toString();
         str=str.replace("class ", "");
         input=input+"/"+str;
         g++;
         inputtypelist.add(str);
          
        
        }
       
          newmtd.setInputlength(g);
          newmtd.setOutputtype(m[i].getReturnType().getName());
              newmtd.setInputparameters(inputtypelist);
              newmtd.setInput(input);
              mtdlist.add(newmtd);
      
       }
return  mtdlist;

}
}
//////////////////////////////////////////////////////////////////////////////////////////
出现IllegalAccessException异常
java.lang.IllegalAccessException: Class stool.JavaFile can not access a member of class Meth.tab.ArgumentHolder with modifiers ""
at sun.reflect.Reflection.ensureMemberAccess(Reflection.java:65)
at java.lang.Class.newInstance0(Class.java:349)
at java.lang.Class.newInstance(Class.java:308)
at stool.JavaFile.getMethods(JavaFile.java:32)
at sdau.modelaction.SingleFileUploadAction.execute(SingleFileUploadAction.java:87)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
/////////////////////////////////////////////////////////////////////////////////////////////////////////
我写了一个方法:其中用到ob = Class.forName(className).newInstance();来动态生成一个对象,但是抛出IllegalAccessException e异常 应该怎么处理啊 --------------------编程问答-------------------- 看看Meth.tab.ArgumentHolder 这个东西在你的运行环境中是不是有多个地方都有,保证只有一份.class --------------------编程问答-------------------- 还有可能就是不同的classloader都loader这个class.
补充:Java ,  Java EE
CopyRight © 2022 站长资源库 编程知识问答 zzzyk.com All Rights Reserved
部分文章来自网络,