20170711-1
リファレンスの挙動の確認とか、リフレクションとか。
package sample; import java.lang.reflect.InvocationTargetException; import java.lang.reflect.Method; public class Ref { public static void main(String[] args) { ref(); } public static void test(String str) { str = new String("test"); System.out.println(str); } public static void ref() { Class<?> clazz; try { clazz = Class.forName("sample.RefSample"); Method method = clazz.getMethod("run"); method.invoke(clazz.newInstance()); } catch (ClassNotFoundException e) { throw new RuntimeException(e); } catch (NoSuchMethodException e) { // TODO 自動生成された catch ブロック e.printStackTrace(); } catch (SecurityException e) { // TODO 自動生成された catch ブロック e.printStackTrace(); } catch (IllegalAccessException e) { // TODO 自動生成された catch ブロック e.printStackTrace(); } catch (IllegalArgumentException e) { // TODO 自動生成された catch ブロック e.printStackTrace(); } catch (InvocationTargetException e) { // TODO 自動生成された catch ブロック e.printStackTrace(); } catch (InstantiationException e) { // TODO 自動生成された catch ブロック e.printStackTrace(); } } }
package sample; public class RefSample { public void run() { System.out.println("RefSample"); } }