求救 大侠速度来看。
交谈中请勿轻信汇款、中奖信息,勿轻易拨打陌生电话。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