读书人

在看一个开源ESB项目MULE的源代码的时

发布时间: 2012-04-10 21:03:56 作者: rapoo

在看一个开源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这个接口来生成一个接口的实例,这样好像违背了接口不能实例化的原……

读书人网 >J2SE开发

热点推荐