On 12/06/2024 15:23, David Lloyd wrote:

:
.

I have a *very* rough prototype up [1]. It adds two new accessor methods to `ReflectionFactory`: `defaultReadObjectForSerialization` and `defaultWriteObjectForSerialization`. It was easier than expected, due largely to the classfile API, which is really nice.

These methods create an artificial `readObject`/`writeObject` method in a hidden+nestmate class connected to the original class, which uses the stream's `GetField`/`PutField` to access the stream data and normal field operations to access the class fields. For usage, these methods can be used when `read|writeObjectForSerialization` return `null`, *or* when `defaultRead|WriteObject` is used.

Good to hear you've got a prototype to discuss. I don't think I can look at what you have in your own repo but I do have a question. Do the defaultXXX methods return a method handle or do they fail/null when there are read/writeObject methods? Asking if they will bypass these methods.

-Alan

Reply via email to