Java加载动态类
内容导读
互联网集市收集整理的这篇技术教程文章主要介绍了Java加载动态类,小编现在分享给大家,供广大互联网技能从业者学习和参考。文章包含1271字,纯文字阅读大概需要2分钟。
内容图文
![Java加载动态类](/upload/InfoBanner/zyjiaocheng/834/c90eff900ad24394af9f34efa6a60af3.jpg)
对于类的加载有两种
- 静态加载:编译时加载类
- 动态加载:通过Class.forName(“类的全称”)可以在运行时刻加载一个类
例如:有Word、Excel两个类(将来也许有PPT类)如果希望运行时刻在Office类中使用Word或者Excel对象,就可以这样:
Class c = Class.forName("Word");
Word word = (Word)c.newInstance();
或者
Class c = Class.forName("Excel");
Excel excel = (Excel)c.newInstance();
然后调用Word(或者Excel)的方法。
因为不能预先知道需要实例化的对象是Word还是Excel,所以强制类型转换时并不能很好的选取要实例化的类。
因此,我们可以让Word,Excel都去实现接口OfficeAble,从而可以将代码改为
OfficeAble oa = (OfficeAble)c.newInstance();
然后就可以调用 oa 中的方法,从而不必去理会需要实例化的是Word还是Excel,因为父类引用可以指向子类实例对象
如果将来要实例化的是PPT,只要PPT去实现接口OfficeAble即可像使用Word那样在运行时刻实例化PPT的对象
Office.java
public class Office{
public static void main(String []args){
try{
Class c = Class.forName(args[0]);
OfficeAble oa = (OfficeAble)c.newInstance();
oa.start();
}catch(Exception e){
e.printStackTrace();
}
}
}
OfficeAble.java
interface OfficeAble{
public void start();
}
Word.java
public class Word implements OfficeAble{
public void start(){
System.out.println("word");
}
}
Excel.java
public class Excel implements OfficeAble{
public void start(){
System.out.println("excel");
}
}
内容总结
以上是互联网集市为您收集整理的Java加载动态类全部内容,希望文章能够帮你解决Java加载动态类所遇到的程序开发问题。 如果觉得互联网集市技术教程内容还不错,欢迎将互联网集市网站推荐给程序员好友。
内容备注
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 gblab@vip.qq.com 举报,一经查实,本站将立刻删除。
内容手机端
扫描二维码推送至手机访问。