Thanks @Tagir Valeev <[email protected]>. I am still not great at the stuff Babylon is doing, so I can only roughly follow along. Regardless, it sounds like this is depending on Babylon features which have not yet landed in the mainline jdk, yes?
On Mon, Dec 1, 2025, 5:22 AM Tagir Valeev <[email protected]> wrote: > I think this will surely be possible for RecordComponents with code > reflection (project Babylon), using the syntax you propose. > > You can create a quotable function like this: > > import jdk.incubator.code.*; > > @Reflect > @FunctionalInterface > interface Accessor { > Object get(Record r); > } > > Then create something like (just a sketch, sorry, I have no time now to > provide a full-fledged sample): > > static RecordComponent foo(Accessor acc) { > Quoted q = Op.ofQuotable(acc).orElseThrow(); > // extract a method handle from q using Babylon API > // unreflect it and find the corresponding RecordComponent > } > > With best regards, > Tagir Valeev > > On Sat, Nov 29, 2025 at 8:45 PM David Alayachew <[email protected]> > wrote: > >> Hello @amber-dev <[email protected]>, >> >> I asked this on core-libs-dev already, but I figured I should ask here >> too. >> >> Let's say I have some record User(String firstName, String lastName) {}. >> >> Is there any possible way for me to do the following? >> >> java.lang.reflect.RecordComponent firstName = foo(User::firstName); >> >> I'll even accept this. >> >> java.lang.reflect.Method lastName = foo(User::lastName); >> >> Thank you for your time and consideration. >> David Alayachew >> >
