pl.slawas.clazz
Class ClassCreator
java.lang.Object
pl.slawas.clazz.ClassCreator
- All Implemented Interfaces:
- java.io.Serializable
public class ClassCreator
- extends java.lang.Object
- implements java.io.Serializable
ClassCreator - dynamiczne tworzenie klas, na podstawie źródła danych
zawartego w StringBuffer
. Przykład zastosowania można znaleźć w
implementacji testów:
Date today = new Date();
String todayMillis = Long.toString(today.getTime());
String todayClass = "z_" + todayMillis;
StringBuffer source = new StringBuffer();
source.append("public class " + todayClass + "{");
source.append(" public void doit() {");
source.append(" System.out.println(\"" + todayMillis + "\");");
source.append(" }}\n");
try {
ClassCreator cc = new ClassCreator("./target/",
ClassCreatorTest.class.getClassLoader());
System.out.println("Running " + todayClass + ":\n\n");
Class<?> params[] = {};
Object paramsObj[] = {};
Class<?> thisClass = cc.generate(todayClass, source);
Object iClass = thisClass.newInstance();
Method thisMethod = thisClass.getDeclaredMethod("doit", params);
thisMethod.invoke(iClass, paramsObj);
} catch (Exception e) {
logger.error("Blad testu:", e);
result = "BAD";
}
- Version:
- $Revision: 1.1.2.2 $
- Author:
- Slawomir Cichy <slawas@slawas.pl>
- See Also:
- Serialized Form
Constructor Summary |
ClassCreator(java.lang.String dynamicClassLocation,
java.lang.ClassLoader externalLoader)
|
Method Summary |
java.lang.Class<?> |
generate(java.lang.String className,
java.lang.StringBuffer source)
|
Methods inherited from class java.lang.Object |
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait |
logger
protected static final Logger logger
ClassCreator
public ClassCreator(java.lang.String dynamicClassLocation,
java.lang.ClassLoader externalLoader)
throws java.net.MalformedURLException
- Throws:
java.net.MalformedURLException
generate
public java.lang.Class<?> generate(java.lang.String className,
java.lang.StringBuffer source)
throws java.io.IOException,
java.lang.ClassNotFoundException
- Throws:
java.io.IOException
java.lang.ClassNotFoundException
Copyright © 2014 Sci Software. All Rights Reserved.