Functionality request: subclassing using lambdas
markzyu opened this issue · 1 comments
markzyu commented
Hi, I just found out this library and jOOR. I really like your projects. I'd like it better if you guys could achieve "subclassing" interfaces and/or abstract classes using lambdas. This would be very helpful for using Java as an interpreted language.
Expected behavior and actual behavior:
I don't know whether similar functionalities exist. But this is what I expect:
// Run this code in a jupyter notebook.
interface Counter {
// This is an interface, but it can also be an abstract class
void add();
void show();
}
org.joor.Reflect myClass = lambdaSubclass(on(Counter))
.addField("counter", Integer.class)
.setDefaultConstructor(self -> self.set("counter", 0))
.set("add", self -> self.set("counter", self.get("counter") +1)),
"show", self -> System.out.println(self.get("counter"))) // "set" is a function of variable length.
.doneSubclass();
Counter x = myClass.create();
x.add();
x.show();
x.add();
x.show();
// Should print 1 then print 2.
Is this possible or already implemented? If not, can I request this functionality and/or help implement it? Thank you!
lukaseder commented
Transferred the issue to the right project: jOOQ/jOOR#46