Call constructor with parameters by reflection August 21, 2012 Fan Hongtao programming java package lang.reflect; import java.lang.reflect.Constructor; /** * Test of how to call constructor with parameters by reflection. */ public class ConsructorTest { public static void main(String[] args) { Class<?> clazz = null; try { clazz = Class.forName("lang.reflect.Tester"); // Call public constructor Tester t1 = (Tester) clazz.getConstructor(int.class).newInstance(100); System.out.println(t1.i); // Call private constructor @SuppressWarnings("unchecked") Constructor<Tester> c = (Constructor<Tester>) clazz.getDeclaredConstructor(String.class); c.setAccessible(true); Tester t2 = c.newInstance("hello, world"); System.out.println(t2.s); } catch (Exception e) { e.printStackTrace(); } } } /** * Class with both public constructor and private constructor. */ class Tester { int i; String s; public Tester(int i) { this.i = i; } private Tester(String s) { this.s = s; } } This article is released under CC BY-NC-SA 3.0 license. ← Previous Next →