Yes, you have to build it from the Babylon repo. On Mon, Dec 1, 2025, 14:35 David Alayachew <[email protected]> wrote:
> 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 >>> >>
