java 反射,插件机制,简易插件

摘要:
1创建一个新项目iaction并将其导出为iaction.jarpackagecom。天地图;publicinterfaceIFly{publicvoidfly();}2创建一个新的项目动作,引用上面的jar包,并实现接口IFlypackagecom.tianditu。行动importcom.tianditu.iaction。IFly;公共分类法
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();
        }
        
    }

}

免责声明:文章转载自《java 反射,插件机制,简易插件》仅用于学习参考。如对内容有疑问,请及时联系本站处理。

上篇记一次mysql小版本升级log4j日志输出到日志文件中和控制台中 +log4j配置详解下篇

宿迁高防,2C2G15M,22元/月;香港BGP,2C5G5M,25元/月 雨云优惠码:MjYwNzM=

相关文章

Java 基础之详解 Java 反射机制

一、什么是 Java 的反射机制?   反射(Reflection)是Java的高级特性之一,是框架实现的基础,定义:JAVA反射机制是在运行状态中,对于任意一个类,都能够知道这个类的所有属性和方法;对于任意一个对象,都能够调用它的任意一个方法和属性;这种动态获取的信息以及动态调用对象的方法的功能称为java语言的反射机制。  一般而言,当用户使用一个类的...

MFC 三种消息

在MFC应用程序中传输的消息有三种类型:窗口消息、命令消息和控件通知。 (1)窗口消息:WM_XXX 窗口消息(Window Message)一般与窗口的内部运作有关,如:创建窗口、绘制窗口和销毁窗口等。通常,消息是从系统发送到窗口,或从窗口发送到窗口。 (2)命令消息:WM_COMMAND 命令消息一般与处理用户请求相关,当用户单击一个菜单项或工具栏时...

C#反射实现

一、反射概念: 1、概念:     反射,通俗的讲就是我们在只知道一个对象的外部而不了解内部结构的情况下,通过反射这个技术可以使我们明确这个对象的内部实现。 在.NET中,反射是重要的机制,它可以动态的分析程序集Assembly,模块Module,类型Type等等,我们在不需要使用new关键的情况下,就可以动态 创建对象,使用对象。降低代码耦合性提高了程序...

c#反射机制学习和利用反射获取类型信息

1、.NET可执行应用程序结构 程序代码在编译后生成可执行的应用,我们首先要了解这种可执行应用程序的结构。 应用程序结构分为应用程序域—程序集—模块—类型—成员几个层次,公共语言运行库加载器管理应用程序域,这种管理包括将每个程序集加载到相应的应用程序域以及控制每个程序集中类型层次结构的内存布局。 程序集包含模块,而模块包含类型,类型又包含成员,反射则提供了...

利用C#的反射机制动态调用DLL类库

最近由于业务要求,需要动态调用DLL类库,所以研究了一下,感觉还好也不太难,今天就把自己理解的写了一个小例子(已经通过VS2005跑通),供大家一起研究和探讨,有理解不当的地方还请高手们多多指正,谢谢啦! 好,在这之前我先把反射所需要使用的几个类给大家列一下: 1、使用Assembly类定义和加载程序集,加载在程序集清单中列出模块,以及从此程序集中查找类型...

Java反射的使用

在 Java 中,并不是所有的类型信息都能在编译阶段明确,有一些类型信息需要在运行时才能确定,这种机制被称为 RTTI,英文全称为Run-Time Type Identification,即运行时类型识别,有没有一点“知行合一”的味道?运行时类型识别主要由Class类实现。 在日常的学习工作当中,有一些知识是我们在读书的时候就能够习得;但有一些知识不是的,...