使用策略模式重构DruidStatManagerFacade.java。

This commit is contained in:
septer
2012-08-09 14:37:59 +08:00
parent fb20f175c9
commit 26bd63cfb2
6 changed files with 411 additions and 263 deletions
@@ -7,49 +7,86 @@ import javax.servlet.http.HttpServletRequest;
/**
* @author sandzhang<sandzhangtoo@gmail.com>
*/
public class ReflectionUtils {
public class ReflectionUtils
{
public static Class<?> getClassFromWebContainerOrCurrentClassLoader(String className) {
public static Class<?> getClassFromWebContainerOrCurrentClassLoader(String className)
{
Class<?> result = null;
try {
try
{
result = HttpServletRequest.class.getClassLoader().loadClass(className);
} catch (ClassNotFoundException e) {
}
if (result == null) {
try {
catch (ClassNotFoundException e)
{
}
if (result == null)
{
try
{
result = Thread.currentThread().getContextClassLoader().loadClass(className);
} catch (ClassNotFoundException e) {
}
catch (ClassNotFoundException e)
{
}
}
return result;
}
public static Object callStaticMethod(Class<?> classObject, String methodName) {
try {
public static Object callStaticMethod(Class<?> classObject, String methodName)
{
try
{
Method m = classObject.getMethod(methodName);
return m.invoke(classObject);
} catch (Exception e) {
}
catch (Exception e)
{
return null;
}
}
public static Object callObjectMethod(Object obj, String methodName) {
try {
public static Object callObjectMethod(Object obj, String methodName)
{
try
{
Method m = obj.getClass().getMethod(methodName);
return m.invoke(obj);
} catch (Exception e) {
}
catch (Exception e)
{
return null;
}
}
public void getTest() {
public static Object callObjectMethod(Object obj, String methodName, Object methodParam)
{
try
{
Method m = obj.getClass().getMethod(methodName);
return m.invoke(obj,methodParam);
}
catch (Exception e)
{
return null;
}
}
public void getTest()
{
System.out.println("dd");
// return "test";
}
public static void main(String args[]) {
public static void main(String args[])
{
System.out.println(callObjectMethod(new ReflectionUtils(), "getTest"));
}