Java反射之静态加载和动态加载的简单实例

 更新时间:2016年10月02日 10:20:24   投稿:jingxian  
下面小编就为大家带来一篇Java反射之静态加载和动态加载的简单实例。小编觉得挺不错的,现在就分享给大家,也给大家做个参考。一起跟随小编过来看看吧

静态加载:

package com.imooc.加载类;

public class Office_Static {
	public static void main(String[] args) {
		//new 创建对象,是静态加载类,在编译时刻就需要加载所有的可能使用到的类
		if("Word".equals(args[0])){
			Word w = new Word();
			w.start();
		}
		if("Excel".equals(args[0])){
			Excel e = new Excel();
			e.start();
		}
	}
}

这个程序编译时必须有Word和Excel这两个类存在才行,即使判断后用不到Excel也要加载

动态加载:

1、接口OfficeAble :

package com.imooc.加载类;

public interface OfficeAble {
	public void start();
}

2、Word实现接口:

package com.imooc.加载类;

public class Word implements OfficeAble{
	public void start(){
		System.out.println("word start");
	}

}

3、Excel实现接口:

package com.imooc.加载类;

public class Excel implements OfficeAble{

	public void start(){
		System.out.println("excel start");
	}
}

4、Main方法

package com.imooc.加载类;

public class OfficeBetter {
	/**
	 * @param args
	 */
	public static void main(String[] args) {
		try {
			//动态加载类,在运行时刻加载
			Class c = Class.forName(args[0]);//在运行配置里面输入com.imooc.加载类.Excel
			//通过类类型,创建该类对象(先转换为Word和Excel的共同接口OfficeAble)
			OfficeAble oa = (OfficeAble)c.newInstance();
			oa.start();
			
			//不推荐下面两种,因为不确定是加载Word还是Excel,要强转
//			Word word = (Word)c.newInstance();
//			word.start();
//			Excel excel = (Excel)c.newInstance();
//			excel.start();
		} catch (Exception e) {
			e.printStackTrace();
		}
	}

}

以上就是小编为大家带来的Java反射之静态加载和动态加载的简单实例的全部内容了,希望对大家有所帮助,多多支持脚本之家~

相关文章

  • 详解如何在SpringBoot中实现优雅关闭

    详解如何在SpringBoot中实现优雅关闭

    这篇文章主要介绍了如何在SpringBoot中实现优雅关闭,SpringBoot应用程序的关闭可以是崩溃,也可以是手动关闭的,Shutdown、Crash 和 Graceful 之间的区别在于,它控制决定了我们可以用这个事件做什么,本文中,一起研究下Spring Boot提供的开箱即用功能之一:优雅关闭
    2024-09-09
  • maven profile动态选择配置文件详解

    maven profile动态选择配置文件详解

    这篇文章主要介绍了maven profile动态选择配置文件详解,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2019-11-11
  • Java实现根据sql动态查询并下载数据到excel

    Java实现根据sql动态查询并下载数据到excel

    这篇文章主要为大家详细介绍了如何使用Java实现根据sql动态查询并下载数据到excel的功能,文中的示例代码讲解详细,有需要的可以参考下
    2024-04-04
  • SpringBoot热部署Springloaded实现过程解析

    SpringBoot热部署Springloaded实现过程解析

    这篇文章主要介绍了SpringBoot热部署Springloaded实现过程解析,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下
    2020-03-03
  • 解决idea2020.2遇到pom.xml文件报错maven插件tomcat7的问题

    解决idea2020.2遇到pom.xml文件报错maven插件tomcat7的问题

    这篇文章主要介绍了idea2020.2遇到pom.xml文件报错maven插件tomcat7的问题,本文给大家分享解决方法,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下
    2020-09-09
  • Java NIO实现多人聊天室

    Java NIO实现多人聊天室

    这篇文章主要为大家详细介绍了Java NIO实现多人聊天室,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2021-11-11
  • FeignClientFactoryBean创建动态代理详细解读

    FeignClientFactoryBean创建动态代理详细解读

    这篇文章主要介绍了FeignClientFactoryBean创建动态代理详细解读,当直接进去注册的方法中,一步步放下走,都是直接放bean的定义信息中放入值,然后转成BeanDefinitionHolder,最后在注册到IOC容器中,需要的朋友可以参考下
    2023-11-11
  • springboot + rabbitmq 如何实现消息确认机制(踩坑经验)

    springboot + rabbitmq 如何实现消息确认机制(踩坑经验)

    这篇文章主要介绍了springboot + rabbitmq 如何实现消息确认机制,本文给大家分享小编实际开发中的一点踩坑经验,内容简单易懂,需要的朋友可以参考下
    2020-07-07
  • spring boot + mybatis如何实现数据库的读写分离

    spring boot + mybatis如何实现数据库的读写分离

    这篇文章主要给大家介绍了关于spring boot + mybatis如何实现数据库的读写分离的相关资料,文中通过示例代码介绍的非常详细,对大家学习或者使用spring boot具有一定的参考学习价值,需要的朋友们下面来一起学习学习吧
    2019-09-09
  • 使用IntelliJ IDEA搭建SSM框架的图文教程

    使用IntelliJ IDEA搭建SSM框架的图文教程

    本文通过图文并茂的形式给大家介绍了使用IntelliJ IDEA搭建SSM框架的教程,非常不错,具有一定的参考借鉴价值,需要的朋友可以参考下
    2018-05-05

最新评论