Class fields are mapped to Record schema fields. To be able to set values you need an instance of the type, i. e. a class field.
On Wed, 2 Apr 2025 at 12:20, Bagi <[email protected]> wrote: > Just wanted to add that the Java reflection is able to fetch the enum like > in the example I posted earlier: > > Class<?> myClass = AvroTest.class; > Class<?>[] declaredClasses = myClass.getDeclaredClasses(); > > Then loop through declaredClasses, check if its 'isEnum()', if yes - > 'getName()' and 'getEnumConstants()' to get name and values. > > Regards, Bagi > > On Wed, 2 Apr 2025, 09:31 Bagi, <[email protected]> wrote: > >> Hi Martin, >> >> Many thanks for your reply. I am not saying it's behaving incorrectly, >> just trying to find a way to have the enum shown in the schema. I have >> class like that, where there is enum defined but not the field with its >> type. I only just started with Avro and wanted to check if that is >> possible. Right now, my schema is incomplete. >> >> Regards, Bagi >> >> On Wed, 2 Apr 2025, 07:22 Martin Grigorov, <[email protected]> wrote: >> >>> Hi, >>> >>> IMO it behaves correctly! >>> >>> AvroTest class is mapped to a Record schema and its class fields are >>> mapped to record fields. >>> >>> What kind of schema do you expect to be generated without the fields? >>> >>> On Tue, 1 Apr 2025 at 13:07, Bagi <[email protected]> wrote: >>> >>>> Hi, >>>> >>>> Newb here. Having an issue with generating the schema when there is an >>>> enum at the top of the tree. Using Avro 1.12.0, I am trying to generate >>>> .avsc file from Java class file, using the following command: >>>> ReflectData.get().getSchema(AvroTest.class); >>>> >>>> Here is the AvroTest.java: >>>> public class AvroTest { >>>> public enum MyEnum { >>>> ENONE, ENTWO, ENTHREE; >>>> } >>>> } >>>> >>>> The ReflectData is ignoring this enum. Workaround is to add field with >>>> that enum to the class, ie. >>>> private MyEnum myEnum; >>>> >>>> Is there any other way to force the enum to be added to the generated >>>> schema? Perhaps something similar to @AvroName annotation but for enums? >>>> >>>> Regards, Bagi >>>> >>>
