首页
社区
课程
招聘
[求助]关于Java插件编写
发表于: 2014-2-13 22:40 3338

[求助]关于Java插件编写

2014-2-13 22:40
3338
一直不明白程序是怎么实现插件接口的,请大牛给实现一个简单的例子,
就举个超级简单的例子吧,
做一个这样的Java平台

一个程序的功能是识别从控制台输入的数字是不是1,如果是1就输出true,不是1就输出false,但是这个程序本身不实现任何识别功能,也就是说只管读入不管判断(没有if语句)
我要开发一个插件让他能判断是不是1

似乎有点脱了裤子放屁多此一举,但是是我能想出来的最简单的例子了。

[培训]内核驱动高级班,冲击BAT一流互联网大厂工作,每周日13:00-18:00直播授课

收藏
免费 0
支持
分享
最新回复 (5)
雪    币: 45
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
2
有没有大牛可以帮忙啊!!!!!!!!
2014-2-14 07:32
0
雪    币: 86
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
3
还是不太明白 ,不判断?
switch(x)

case 1:输出 true
default:输出false
2014-2-14 10:49
0
雪    币: 174
活跃值: (26)
能力值: ( LV4,RANK:50 )
在线值:
发帖
回帖
粉丝
4
基本思路就是其他class里公开,main里加载其他class,然后调用。

搜索:java 动态 调用 class
我用google找到一篇名为:java動態調用的範例(包括class/jar)
2014-2-14 13:10
0
雪    币: 80
活跃值: (220)
能力值: ( LV3,RANK:30 )
在线值:
发帖
回帖
粉丝
5
java平台实现插件机制可以采用 osgi 规范实现,例如Eclipse RCP程序就是采用插件(Plugin)机制开发的。
我们说的插件(Plugin)在 osgi 规范的属于里面称为模块(bundle),模块可以动态安装和卸载。
符合osgi规范的框架有Apache FelixEquinox等。
你可以下载这两个框架的库(一般为jar文件格式),采用java语言开发。如果自己写代码实现的话,比较花时间;其中的基本原理就是:
1 采用java的classloader机制,在jar文件中(或某个目录下)搜索各种class格式的文件,动态装载这个类,称这个类为A;
2 定义接口I;
3 A需要实现接口I,主程序在将A装载后,利用java的反射机制,产生A的实例instanceA;
4 将instanceA强制转换为接口I类型,调用 I 中的函数。
5 (完成)

.net平台的插件可以采用微软提供的 MEF 和 MAF 框架,MEF使用起来比MAF简单直接。

代码:你的例子很简单,但是插件机制实现起来比看上去复杂。工程应用建议直接采用插件框架;为了学习,也可以自己直接写。样例代码网上很多,不再提供了:)
2014-2-15 13:01
0
雪    币: 45
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
6
嗯嗯,楼上说的很明白,我前天查了很多资料就是得出的结论就是用这种方法写,我已经尝试成功了,谢谢你的解答
2014-2-16 10:05
0
游客
登录 | 注册 方可回帖
返回
//