//定义一个接口
public interface ClassInterFace
{
public String getStr(String className);
}
==================================
//定义一个单例模式的实现类
public class BaseClass implements ClassInterFace
{
private static BaseClass instance = null;
public static synchronized BaseClass getInstance()
{
if (instance == null)
instance = new BaseClass();
return instance;
}
public String getStr(String ClassName)
{
return ClassName;
}
}
===================================
//通过ClassLoader或者Reflection获取接口实现类
public class ClassLoadTest
{
/**
* ClassLoader加载器使用
*/
public void getClassTest(String className)
{
ClassInterFace base = null;
if (null != className && !"".equals(className)) {
try {
base = (ClassInterFace)this.getClass().getClassLoader().loadClass(className).newInstance();
base.getStr("ClassLoad加载器使用");
}
catch(Exception e) {
e.printStackTrace();
}
}
}
/**
* 通过反射获取java类
*/
public void getClassToReflection(String className)
{
try {
ClassInterFace base = (ClassInterFace)Class.forName(className).newInstance();
base.getStr("反射获取java类");
}
catch (Exception e) {
e.printStackTrace();
}
}
public static void main(String[] args) {
ClassLoadTest classLoad = new ClassLoadTest();
classLoad.getClassTest("com.demo.BaseClass");//指定的java类
classLoad.getClassToReflection("com.demo.BaseClass");
BaseClass aa = BaseClass.getInstance();
aa.getStr("java单态模式");
}
}
public interface ClassInterFace
{
public String getStr(String className);
}
==================================
//定义一个单例模式的实现类
public class BaseClass implements ClassInterFace
{
private static BaseClass instance = null;
public static synchronized BaseClass getInstance()
{
if (instance == null)
instance = new BaseClass();
return instance;
}
public String getStr(String ClassName)
{
return ClassName;
}
}
===================================
//通过ClassLoader或者Reflection获取接口实现类
public class ClassLoadTest
{
/**
* ClassLoader加载器使用
*/
public void getClassTest(String className)
{
ClassInterFace base = null;
if (null != className && !"".equals(className)) {
try {
base = (ClassInterFace)this.getClass().getClassLoader().loadClass(className).newInstance();
base.getStr("ClassLoad加载器使用");
}
catch(Exception e) {
e.printStackTrace();
}
}
}
/**
* 通过反射获取java类
*/
public void getClassToReflection(String className)
{
try {
ClassInterFace base = (ClassInterFace)Class.forName(className).newInstance();
base.getStr("反射获取java类");
}
catch (Exception e) {
e.printStackTrace();
}
}
public static void main(String[] args) {
ClassLoadTest classLoad = new ClassLoadTest();
classLoad.getClassTest("com.demo.BaseClass");//指定的java类
classLoad.getClassToReflection("com.demo.BaseClass");
BaseClass aa = BaseClass.getInstance();
aa.getStr("java单态模式");
}
}