dragome-sdk
dragome-sdk copied to clipboard
Need full support java 8 closure
Repost from https://github.com/xpenatan/gdx-dragome-backend/issues/25
We can read on this page https://github.com/dragome/dragome-sdk :
Java 8 ready. Build your pages using lambda expressions, default methods, streams
but I have this synthetic code:
====================================================
Supplier.java
public interface Supplier<T> {
public T get();
}
ObjectPool.java
public class ObjectPool<T> {
private final Supplier<T> supplier;
private ObjectPool(final Supplier<T> supplier) {
this.supplier = supplier;
}
public T get() {
return supplier.get();
}
public static <T> ObjectPool<T> create(final Supplier<T> supplier) {
return new ObjectPool<>(supplier);
}
}
NodeOverlapCallback.java
public abstract class NodeOverlapCallback {
public abstract void processNode();
}
MyNodeOverlapCallback.java
public class MyNodeOverlapCallback extends NodeOverlapCallback {
@Override
public void processNode() {
// DO SOMETHING
}
}
====================================================
Now if i do like this:
final ObjectPool<MyNodeOverlapCallback> myNodeCallbacks = ObjectPool.create(
new Supplier<MyNodeOverlapCallback>() {
@Override
public MyNodeOverlapCallback get() {
return new MyNodeOverlapCallback();
}
});
final MyNodeOverlapCallback myNodeCallback = myNodeCallbacks.get();
myNodeCallback.processNode();
All work well after dragome js codegen
But if i do like this:
final ObjectPool<MyNodeOverlapCallback> myNodeCallbacks = ObjectPool.create(
() -> new MyNodeOverlapCallback()
);
final MyNodeOverlapCallback myNodeCallback = myNodeCallbacks.get();
myNodeCallback.processNode();
Browser write javascript error that myNodeCallback is null;
But both implimentation work correct as java code.
@nicolaichuk: Could you please create a test to reproduce the issue?
Ok. I try do it when will have free time.
@fpetrola, i add test suite for this issue.
great, thanks!
@fpetrola, when do you plane fix this issue?
I think we could fix it for this milestone: https://github.com/dragome/dragome-sdk/milestone/5
@fpetrola
ping...