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
>>>>
>>>

Reply via email to