Skip to main content

  | मौसम…

411 समाचार
Public archive edition · Attributed source reporting with original dates · AI drafts are excluded

411 REFERENCE · Wikibooks

Java Programming/Reflection/Dynamic Invocation

Reference material by Wikibooks contributors. This retains its source identity and is not 411 news reporting.

Dynamic Invocation __NOTOC__ We start with basic transfer object: Code listing 10.1: DummyTo.java package com.test; public class DummyTo { private String name; private String address; public String getName() { return name; } public void setName(String name) { this.name = name; } public String getAddress() { return address; } public void setAddress(String address) { this.address = address; } public DummyTo(String name, String address) { this.name = name; this.address = address; } public DummyTo() { this.name = new String(); this.address = new String(); } public String toString(String appendBefore) { return appendBefore + " " + name + ", " + address; } } Following is the example for invoking method from the above mentioned to dynamically. Code is self explanatory. Code listing 10.2: ReflectTest.java package com.test; import java.lang.reflect.Constructor; import java.lang.reflect.InvocationTargetException; import java.lang.reflect.Method; public class ReflectTest { public static void main(String[] args) { try { Class<?> dummyClass = Class.forName("com.test.DummyTo"); // parameter types for methods Class<?>[] partypes = new Class[]{String.class}; // Create method object. methodname and parameter types Method meth = dummyClass.getMethod("toString", partypes); // parameter types for constructor Class<?>[] constrpartypes = new Class[]{String.class, String.class}; //Create constructor object. parameter types Constructor<?> constr = dummyClass.getConstructor(constrpartypes); // create instance Object dummyto = constr.newInstance(new Object[]{"Java Programmer", "India"}); // Arguments to be passed into method Object[] arglist = new Object[]{"I am"}; // invoke method!! String output = (String) meth.invoke(dummyto, arglist); System.out.println(output); } catch (ClassNotFoundException e) { e.printStackTrace(); } catch (SecurityException e) { e.printStackTrace(); } catch (NoSuchMethodException e) { e.printStackTrace(); } catch (IllegalArgumentException e) { e.printStackTrace(); } catch (IllegalAccessException e) { e.printStackTrace(); } catch (InvocationTargetException e) { e.printStackTrace(); } catch (InstantiationException e) { e.printStackTrace(); } } }Console for Code listing 10.2 I am Java Programmer, India Conclusion: Above examples demonstrate the invocation of method dynamically using reflection. Add some exercises like the ones in Variables 50%