zoukankan      html  css  js  c++  java
  • java 反射,插件机制,简易插件

    1 新建一个项目 iaction,并export为iaction.jar
    
    package com.tianditu.iaction;
    
    public interface IFly {
        public void fly();
    }
    
    
    2 新建一个项目 action,引用上述jar包,并实现接口IFly
    
    package com.tianditu.action;
    
    import com.tianditu.iaction.IFly;
    
    public class Firefly implements IFly {
    
        @Override
        public void fly() {
            System.out.println("萤火虫在飞翔");
        }
    
    }
    
    3 新建一个项目 exam,并引用iaction.jar包
    
    package com.tianditu.exam;
    
    import java.net.MalformedURLException;
    import java.net.URL;
    import java.net.URLClassLoader;
    
    import com.tianditu.iaction.IFly;
    
    public class Program {
    
        public static void main(String[] args) {
    
            try {
                URL url=new URL("file:c:/action.jar");//将action.jar放到某个位置
                URLClassLoader myClassLoader=new URLClassLoader(new URL[]{url},Thread.currentThread().getContextClassLoader());
                Class<?> myClass=myClassLoader.loadClass("com.tianditu.action.Firefly");//反射实例化
                IFly firefly=(IFly)myClass.newInstance();
                firefly.fly();
                
            } catch (MalformedURLException e) {
                e.printStackTrace();
            } catch (ClassNotFoundException e) {
                e.printStackTrace();
            } catch (InstantiationException e) {
                e.printStackTrace();
            } catch (IllegalAccessException e) {
                e.printStackTrace();
            }
            
        }
    
    }
  • 相关阅读:
    DVWA系列のSQL注射
    DVWA系列のCSRF&文件包含
    PHPSTORM+Xdebug配置
    Django 从入门到忘记学习笔记
    <双十一特辑> 模拟登录学校教务处爬取全校女生资料和头像
    zzcms7.2漏洞挖掘学习
    laravel5.3搭建过程中出现问题
    kali-linux简单学习
    linux学习二(小随笔)
    linux学习一
  • 原文地址:https://www.cnblogs.com/i80386/p/2893048.html
Copyright © 2011-2022 走看看