我想知道Java7的新
我考虑的场景如下。(这看起来像是访问者设计模式的应用案例,但可能存在不可行的原因。)
图书馆类
我知道MultiJava,但这是否可以在纯Java的方式下实现?
invokedynamic
字节码指令是否可用于实现Java语言的多分派。java.lang.invoke下的新API是否有助于执行此操作?我考虑的场景如下。(这看起来像是访问者设计模式的应用案例,但可能存在不可行的原因。)
class A {}
class A1 extends A {}
class A2 extends A {}
class SomeHandler {
private void doHandle(A1 a1) { ... }
private void doHandle(A2 a2) { ... }
private void doHandle(A a) { ... }
public void handle(A a) {
MultipleDispatch.call(this, "doHandle", a);
}
}
图书馆类
MultipleDispatch
将会执行以下操作:class MultipleDispatch {
public static Object call(Object receiver, String method, Object...arg) {
// something like that in byte code
#invokeDynamic "doHandle" "someBootstrap"
}
static CallSite someBootstrap {
// resolve that dynamic method call.
}
}
我知道MultiJava,但这是否可以在纯Java的方式下实现?