我使用mbassador,並且發佈到接口似乎不起作用。以下是使用JUnit的sscce。我希望這個程序打印hello world
,但它不。但是,如果我改變這一行:MB Ambassador不支持接口消息
public void handleFoo(FooInterface f) {
這樣:
public void handleFoo(FooImpl f) {
程序完美的作品。這是一個錯誤,還是我做錯了什麼?注意:public void handleFoo(Object o)
也適用。
import net.engio.mbassy.bus.BusConfiguration;
import net.engio.mbassy.bus.MBassador;
import net.engio.mbassy.listener.Handler;
import org.junit.Test;
public class MBassadorTest {
@Test
public void testMBassador() {
MBassador<FooInterface> bus = new MBassador<>(BusConfiguration.Default());
bus.subscribe(this);
FooInterface myFoo = new FooImpl();
bus.publish(myFoo);
}
public static interface FooInterface {
String doSomething();
}
public static class FooImpl implements FooInterface {
public String doSomething() {
return "hello world";
}
}
@Handler(rejectSubtypes = false)
public void handleFoo(FooInterface f) {
System.out.println(f.doSomething());
}
}
它現在固定1.1.7。如果您遇到任何問題,請檢查並報告。 – bennidi