processclassinst.java
来自「kaffe Java 解释器语言,源码,Java的子集系统,开放源代码」· Java 代码 · 共 110 行
JAVA
110 行
/** * ??? * * @author Godmar Back <gback@cs.utah.edu> */import java.util.Vector;import java.lang.reflect.*;class Base { static boolean useme; static { Base b = new Base(); ProcessClassInst.v.addElement(b); useme = true; try { Thread.sleep(2000); } catch (InterruptedException e) { } ((Object)null).toString(); } public String toString() { return "a base"; }}public class ProcessClassInst{ static Vector v = new Vector(); public static void main(String av[]) throws Exception { // a watchdog thread that kills us off after 9 sec Thread wd = new Thread() { public void run() { try { Thread.sleep(9000); System.out.println("sorry, you timed out"); System.exit(-1); } catch (Exception e) { System.out.println(e); } } }; wd.setDaemon(true); wd.start(); // a thread that will load Base Thread t = new Thread() { public void run() { try { Class.forName("Base"); } catch (Throwable tx) { // System.out.println(tx); } } }; t.start(); Thread.sleep(1000); // nobody knows yet whether that should succeed... Thread t0 = new Thread() { public void run() { try { System.out.println("tan " + new Base()); } catch (Throwable tt) { System.out.println("tan " + tt); } } }; t0.start(); t0.join(); Class cc = v.elementAt(0).getClass(); final Object ni = cc.newInstance();/*** Thread other = new Thread() { public void run() { System.out.println(ni); } }; other.start(); other.join();***/ System.out.println("m2 " + ni); Thread t2 = new Thread() { public void run() { try { System.out.println("t2 " + v.elementAt(0).getClass().newInstance()); } catch (Throwable ty) { System.out.println(ty); } } }; t2.start(); t2.join(); System.exit(0); }}/* Expected Output:tan java.lang.NoClassDefFoundError: Basejava.lang.NoClassDefFoundError: Base at java.lang.Class.getConstructor0 (Class.java) at java.lang.Class.getDeclaredConstructor (Class.java:174) at java.lang.Class.newInstance (Class.java:422) at ProcessClassInst.main (ProcessClassInst.java:72)*/
⌨️ 快捷键说明
复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?