Improving Method Reference Ergonomics

Peter Eastham petereastham at gmail.com
Mon Dec 9 01:52:32 UTC 2024


Hi Amber team,

Earlier this week I was playing around with fluent API design, and I
believe Java could benefit from some improvements to the usage of Method
References, I'll keep this short with the following example.

Lets take the following JPA Criteria from section 6.3.3 of the
Specification, (Only for an example of what an API could begin doing, not
should do)
CriteriaQuery q = cb.createQuery(Customer.class);
Root customer = q.from(Customer.class);
Join order = customer.join(Customer_.orders, JoinType.LEFT);
q.where(cb.equal(customer.get(Customer_.status), 1)).select(customer);

If there was greater access to the Method Reference more implicit
information could be passed, reducing the noise,
CriteriaQuery q = CriteriaQuery.createQuery(Customer::new)
  .leftJoin(Customer::orders)
  .where(Object::equals, Customer::status, 1);
var result = q.select();

Regarding what should be available, the resolved Class and Method name at
least, anything else I'd leave up to the feasibility of the change.

Thanks,
-Peter
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <https://mail.openjdk.org/pipermail/amber-dev/attachments/20241208/226cbd0d/attachment-0001.htm>


More information about the amber-dev mailing list