I have a java class containing all the columns of a database table as attributes (member variables) and corresponding getters and setters.
I want to have a method in this class called getColumnCount()
that returns the number of columns (i.e. the number of attributes in the class)? How would I implement this without hardcoding the number? I am open to critisims on this in general and suggestions. Thanks.
I used to have the same purpose as yours, then made a function powered by Java reflection for solving that.
Guess I can help you.
Any comment is welcome and happy coding.
One approach would be to use reflection to list the methods of the class and count the methods whose name match the regular expression "
^set.+$
".Make an annotation like "DatabaseColumn", use it which fields map to a table column. You can use annotation for fields or getter methods. so it is safe for transient fields for not used in database table.
Check the reflection API. If the class in question is actually a pure Javabean, you can get the number of fields (properties or columns as you call it) as follows:
I however highly question the need for this. If you elaborate a bit more about the functional requirement for which you think that you need this approach/solution, then we may be able to suggest better ways.