通过ClassLoader或者Reflection获取接口实现类

//定义一个接口
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单态模式");
}
}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值