首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > JAVA > J2SE开发 >

在看一个开源ESB项目MULE的源代码的时候遇到一个有关问题,请大家帮忙

2012-04-10 
在看一个开源ESB项目MULE的源代码的时候遇到一个问题,请大家帮忙mule有一个类,叫AbstractOutboundRouter,

在看一个开源ESB项目MULE的源代码的时候遇到一个问题,请大家帮忙
mule有一个类,叫AbstractOutboundRouter,在里面有个dispatch方法,方法里面有这么一行代码
TransactionCallback cb = new TransactionCallback()
而TransactionCallback却是一个interface...我被这个用法搞糊涂了,在java里面,interface不是不能被实例化的么?那为什么他这里却能这样用呢?
TransactionCallback的定义如下:
package org.mule.api.transaction;

public interface TransactionCallback
{
  Object doInTransaction() throws Exception;
}


[解决办法]

探讨

你说的是我如果有一个实现类实现了TransactionCallback这个接口,假定为TransactionCallbackImpl类,那可以通过TransactionCallback cb=new TransactionCallbackImpl()来实现方法回调,但我说的意思是他这里直接new了TransactionCallback这个接口来生成一个接口的实例,这样好像违背了接口不能实例化的原……

热点排行