mirror of
https://github.com/corda/corda.git
synced 2025-01-09 14:33:30 +00:00
2465459079
The two big pieces here are basic invokedynamic support and a working version of LambdaMetaFactory.metafactory. The latter works by dynamically building a synthetic class with three methods: a static factory method, a constructor for the factory method to call, and a method to satisfy the requested interface which defers to the specified MethodHandle. This work relies heavily on Avian's specific MethodType and MethodHandle implementations, which provide extra, non-standard features to make code generation easier. That means we'll probably need to use Avian's versions of java.lang.invoke.* even when building with the OpenJDK or Android class libraries.
19 lines
403 B
Java
19 lines
403 B
Java
package java.lang.invoke;
|
|
|
|
public class MethodHandles {
|
|
public static class Lookup {
|
|
final avian.VMClass class_;
|
|
private final int modes;
|
|
|
|
private Lookup(avian.VMClass class_, int modes) {
|
|
this.class_ = class_;
|
|
this.modes = modes;
|
|
}
|
|
|
|
public String toString() {
|
|
return "lookup[" + avian.SystemClassLoader.getClass(class_) + ", "
|
|
+ modes + "]";
|
|
}
|
|
}
|
|
}
|