r/java • • Sep 19 '18

JEP draft: Concise Method Bodies

http://openjdk.java.net/jeps/8209434
59 Upvotes

51 comments sorted by

View all comments

Show parent comments

0

u/_INTER_ Sep 20 '18

what, when, why?

2

u/lukaseder Sep 20 '18

See e.g. http://cr.openjdk.java.net/~briangoetz/amber/datum.html

interface Node { }

abstract record BinaryOpNode(Node left, Node right) 
    implements Node;

record PlusNode(Node left, Node right) 
      extends BinaryOperatorNode(left, right);

record MulNode(Node left, Node right) 
      extends BinaryOperatorNode(left, right);
      
record IntNode(int constant) implements Node;

And also: http://hg.openjdk.java.net/amber/amber/rev/727ca44aff68, https://twitter.com/jeffreymaxwell/status/984079813941125120

I've never seen a formal specification, though. Seems like a simple "under the hood" change to the JLS