Java反射之靜態(tài)加載和動(dòng)態(tài)加載的簡(jiǎn)單實(shí)例
靜態(tài)加載:
package com.imooc.加載類;
public class Office_Static {
public static void main(String[] args) {
//new 創(chuàng)建對(duì)象,是靜態(tài)加載類,在編譯時(shí)刻就需要加載所有的可能使用到的類
if("Word".equals(args[0])){
Word w = new Word();
w.start();
}
if("Excel".equals(args[0])){
Excel e = new Excel();
e.start();
}
}
}
這個(gè)程序編譯時(shí)必須有Word和Excel這兩個(gè)類存在才行,即使判斷后用不到Excel也要加載
動(dòng)態(tài)加載:
1、接口OfficeAble :
package com.imooc.加載類;
public interface OfficeAble {
public void start();
}
2、Word實(shí)現(xiàn)接口:
package com.imooc.加載類;
public class Word implements OfficeAble{
public void start(){
System.out.println("word start");
}
}
3、Excel實(shí)現(xiàn)接口:
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 {
//動(dòng)態(tài)加載類,在運(yùn)行時(shí)刻加載
Class c = Class.forName(args[0]);//在運(yùn)行配置里面輸入com.imooc.加載類.Excel
//通過類類型,創(chuàng)建該類對(duì)象(先轉(zhuǎn)換為Word和Excel的共同接口OfficeAble)
OfficeAble oa = (OfficeAble)c.newInstance();
oa.start();
//不推薦下面兩種,因?yàn)椴淮_定是加載Word還是Excel,要強(qiáng)轉(zhuǎn)
// Word word = (Word)c.newInstance();
// word.start();
// Excel excel = (Excel)c.newInstance();
// excel.start();
} catch (Exception e) {
e.printStackTrace();
}
}
}
以上就是小編為大家?guī)淼腏ava反射之靜態(tài)加載和動(dòng)態(tài)加載的簡(jiǎn)單實(shí)例的全部?jī)?nèi)容了,希望對(duì)大家有所幫助,多多支持腳本之家~
相關(guān)文章
詳解如何在SpringBoot中實(shí)現(xiàn)優(yōu)雅關(guān)閉
這篇文章主要介紹了如何在SpringBoot中實(shí)現(xiàn)優(yōu)雅關(guān)閉,SpringBoot應(yīng)用程序的關(guān)閉可以是崩潰,也可以是手動(dòng)關(guān)閉的,Shutdown、Crash 和 Graceful 之間的區(qū)別在于,它控制決定了我們可以用這個(gè)事件做什么,本文中,一起研究下Spring Boot提供的開箱即用功能之一:優(yōu)雅關(guān)閉2024-09-09
maven profile動(dòng)態(tài)選擇配置文件詳解
這篇文章主要介紹了maven profile動(dòng)態(tài)選擇配置文件詳解,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2019-11-11
Java實(shí)現(xiàn)根據(jù)sql動(dòng)態(tài)查詢并下載數(shù)據(jù)到excel
這篇文章主要為大家詳細(xì)介紹了如何使用Java實(shí)現(xiàn)根據(jù)sql動(dòng)態(tài)查詢并下載數(shù)據(jù)到excel的功能,文中的示例代碼講解詳細(xì),有需要的可以參考下2024-04-04
SpringBoot熱部署Springloaded實(shí)現(xiàn)過程解析
這篇文章主要介紹了SpringBoot熱部署Springloaded實(shí)現(xiàn)過程解析,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下2020-03-03
解決idea2020.2遇到pom.xml文件報(bào)錯(cuò)maven插件tomcat7的問題
這篇文章主要介紹了idea2020.2遇到pom.xml文件報(bào)錯(cuò)maven插件tomcat7的問題,本文給大家分享解決方法,對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2020-09-09
FeignClientFactoryBean創(chuàng)建動(dòng)態(tài)代理詳細(xì)解讀
這篇文章主要介紹了FeignClientFactoryBean創(chuàng)建動(dòng)態(tài)代理詳細(xì)解讀,當(dāng)直接進(jìn)去注冊(cè)的方法中,一步步放下走,都是直接放bean的定義信息中放入值,然后轉(zhuǎn)成BeanDefinitionHolder,最后在注冊(cè)到IOC容器中,需要的朋友可以參考下2023-11-11
springboot + rabbitmq 如何實(shí)現(xiàn)消息確認(rèn)機(jī)制(踩坑經(jīng)驗(yàn))
這篇文章主要介紹了springboot + rabbitmq 如何實(shí)現(xiàn)消息確認(rèn)機(jī)制,本文給大家分享小編實(shí)際開發(fā)中的一點(diǎn)踩坑經(jīng)驗(yàn),內(nèi)容簡(jiǎn)單易懂,需要的朋友可以參考下2020-07-07
spring boot + mybatis如何實(shí)現(xiàn)數(shù)據(jù)庫的讀寫分離
這篇文章主要給大家介紹了關(guān)于spring boot + mybatis如何實(shí)現(xiàn)數(shù)據(jù)庫的讀寫分離的相關(guān)資料,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家學(xué)習(xí)或者使用spring boot具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面來一起學(xué)習(xí)學(xué)習(xí)吧2019-09-09

