Skip to content

Commit 8e10c08

Browse files
committed
Generate lambda and method references
1 parent 945311f commit 8e10c08

File tree

1 file changed

+20
-2
lines changed
  • JavaProjectGenerator/src/de/loskutov/jpg

1 file changed

+20
-2
lines changed

JavaProjectGenerator/src/de/loskutov/jpg/Clazz.java

Lines changed: 20 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -80,11 +80,29 @@ String generateMethods(String type) {
8080
"\t \t try {\n" +
8181
"\t \t \t this.call" + suffix + "();\n" +
8282
"\t \t } catch (Exception e) {}\n" +
83+
"\t \t " + "Runnable r = () -> {\n" +
84+
"\t \t " + " run" + suffix + "();\n" +
85+
"\t \t " + " set(this);\n" +
86+
"\t \t " + " get();\n" +
87+
"\t \t " + "};\n" +
88+
"\t \t " + "r.run();\n" +
89+
"\t \t " + "r = this::run;\n" +
90+
"\t \t " + "r.run();\n" +
91+
"\t \t " + "r = " + extend + ".instance::run;\n" +
92+
"\t \t " + "r.run();\n" +
8393
"\t \t " + extend + ".getInstance" + suffix + "().run();\n" +
8494
"\t }\n\n" +
8595
"\t public "+type+" call" + suffix + "() throws Exception {\n" +
86-
"\t \t " + extend + ".getInstance" + suffix + "().run();\n" +
87-
"\t \t return ("+type+")" + extend + ".getInstance" + suffix + "().call" + suffix + "();\n" +
96+
"\t \t " + extend + ".getInstance" + suffix + "().call();\n" +
97+
"\t \t " + "java.util.concurrent.Callable<?> c = () -> {\n" +
98+
"\t \t " + " call" + suffix + "();\n" +
99+
"\t \t " + " set(this);\n" +
100+
"\t \t " + " return get();\n" +
101+
"\t \t " + "};\n" +
102+
"\t \t " + "c.call();\n" +
103+
"\t \t " + "c = " + extend + ".getInstance" + suffix + "()::call;\n" +
104+
"\t \t " + "c.call();\n" +
105+
"\t \t return ("+type+")" + extend + ".getInstance" + suffix + "().call" + suffix + "();\n" +
88106
"\t }\n";
89107
sb.append(result);
90108
}

0 commit comments

Comments
 (0)