BeanProperties.java uses getDeclaredFields() to iterate over properties in a bean but not all properties on a bean need to have a corresponding field on the class. This causes unwarranted CsvExceptions to be thrown claiming "Property does not exist".
A bean can have many properties which have no corresponding field on the class.
For example:
class A {
String[] values = new String[2];
public void setName(String name) {
values[0] = name;
}
public void getName() {
return values[0];
}
public void setLogin(String login) {
values[1] = login;
}
public void getLogin() {
return values[1];
}
}
This class would have 1 field called "values" but 2 properties called "name" and "login"
Record classes generated by JOOQ are a real-world example of this pattern.
BeanProperties.java uses getDeclaredFields() to iterate over properties in a bean but not all properties on a bean need to have a corresponding field on the class. This causes unwarranted CsvExceptions to be thrown claiming "Property does not exist".
A bean can have many properties which have no corresponding field on the class.
For example:
This class would have 1 field called "values" but 2 properties called "name" and "login"
Record classes generated by JOOQ are a real-world example of this pattern.