IllegalArgumentException
package?myproxy; import?org.apache.commons.io.FileUtils; import?javax.tools.JavaCompiler; import?javax.tools.StandardJavaFileManager; import?javax.tools.ToolProvider; import?java.io.File; import?java.lang.reflect.Constructor; import?java.lang.reflect.Method; public?class?Proxy?{ ????public?static?Object?newProxyInstance(Class?infce)?throws?Exception?{ ????????String?rt?=?"\r\n"; ????????String?methodStr?=?""; ????????for(Method?m?:?infce.getMethods()){ ????????????methodStr?+=?"?@Override"?+?rt?+ ????????????????????"??public?void?"?+?m.getName()?+?"()?{"?+?rt?+ ????????????????????"?????long?starttime?=?System.currentTimeMillis();"?+?rt?+ ????????????????????"?????System.out.println(\"汽車開始行駛....\");"?+?rt?+ ????????????????????"?????m."?+?m.getName()?+?"();"?+?rt?+ ????????????????????"?????long?endtime?=?System.currentTimeMillis();"?+?rt?+ ????????????????????"?????System.out.println(\"汽車結束行駛....??汽車行駛時間:\"?"?+?rt?+ ????????????????????"???????????+?(endtime?-?starttime)?+?\"毫秒!\");"?+?rt?+ ????????????????????"??}"?; ????????} ????????String?str?= ????????????????"package?myproxy;"?+?rt?+ ????????????????????????"public?class?$Proxy0?implements?"?+?infce.getSimpleName()+?"?{"?+?rt?+ ????????????????????????"??public?$Proxy0("?+?infce.getSimpleName()?+?"?m)?{"?+?rt?+ ????????????????????????"?????super();"?+?rt?+ ????????????????????????"?????this.m?=?m;"?+?rt?+ ????????????????????????"??}"?+?rt?+ ????????????????????????"??private?"?+?infce.getSimpleName()?+?"?m;"?+?rt?+ ????????????????????????methodStr?+?rt?+ ????????????????????????"}"?; ????????//產生代理類的java文件 ????????String?filename?=?System.getProperty("user.dir")?+"/src/myproxy/$Proxy0.java"; ????????File?file?=?new?File(filename); ????????FileUtils.writeStringToFile(file,?str); ????????//編譯 ????????//拿到編譯器 ????????JavaCompiler?complier?=?ToolProvider.getSystemJavaCompiler(); ????????//文件管理者 ????????StandardJavaFileManager?fileMgr?= ????????????????complier.getStandardFileManager(null,?null,?null); ????????//獲取文件 ????????Iterable?units?=?fileMgr.getJavaFileObjects(filename); ????????//編譯任務 ????????JavaCompiler.CompilationTask?t?=?complier.getTask(null,?fileMgr,?null,?null,?null,?units); ????????//進行編譯 ????????t.call(); ????????fileMgr.close(); ????????//load?到內存 ????????ClassLoader?cl?=?ClassLoader.getSystemClassLoader(); ????????Class?c?=?cl.loadClass("myproxy.$Proxy0"); ????????Constructor?ctr?=?c.getConstructor(infce); ????????return?ctr.newInstance(new?Car()); ????} }
大家能幫忙看看哪里出問題了嗎