• 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();
            }
            
        }
    
    }
  • 相关阅读:
    在过滤器中验证接口中的Token
    导出EXCEL的 两个方法
    调用webservice接口,返回xml(String)转义
    时间类的操作
    jvm 内存解析以及jvm调优
    redis springMVC 配置与应用
    题目2 成绩排序
    题目1 排序
    题目1042:Coincidence
    题目1131:合唱队形
  • 原文地址:https://www.cnblogs.com/i80386/p/2893048.html
Copyright © 2020-2023  润新知