我了解如果类覆盖默认方法,则可以通过以下方式访问默认方法
interface IFoo {
default void bar() {}
}
class MyClass implements IFoo {
void bar() {}
void ifoobar() {
IFoo.super.bar();
}
}
Run Code Online (Sandbox Code Playgroud)
但是,如果接口覆盖默认方法,情况又如何呢?父方法有任何可用方式吗?
interface IFoo {
default void bar() {}
}
interface ISubFoo extends IFoo {
// is IFoo.bar available anywhere in here?
default void bar {}
}
class MyClass implements ISubFoo {
// is IFoo.bar available anywhere in here too?
public static void main(String[] args) {
MyClass mc = new MyClass();
mc.bar(); // calls ISubFoo.bar
}
}
Run Code Online (Sandbox Code Playgroud)
Java用于默认方法的语言类似于类,否则会造成混淆/误导。子接口“继承”默认方法,并且可以“覆盖”它们。因此,似乎IFoo.bar应该可以在某处访问。
我正在寻找rabbitmq文档,似乎rabbitmq不处理消息重新传递计数.如果我要手动ACK/NACK消息,我需要在内存中保留重试计数(例如,通过使用correlationId作为映射中的唯一键),或者通过在消息中设置我自己的头,并重新传递它(因此把它放在队列的末尾)
然而,这是弹簧处理的情况.具体来说,我指的是RetryInterceptorBuilder.stateful().maxAttempts(x).这个计数特定于JVM,还是以某种方式操纵消息?
例如,我有一个部署到2台服务器的Web应用程序,maxAttempts设置为5.总重新传输计数是否可能是5-9,具体取决于它在2中重新传递和重新处理的顺序.服务器?
java ×2
amqp ×1
default ×1
interface ×1
messaging ×1
methods ×1
overriding ×1
rabbitmq ×1
spring-amqp ×1