Please look at the below scenario: (PS: I am not trying to resolve the code too large compiler error as there are multiple elegant ways of doing it.)
We are getting "Code too large
" compilation error for one of our class. This class contains public String fields
for label ID and value. We use this class for localization, except for English all other language labels come from .properties
files.
The reason we are getting this error is because we have a static
block in which using reflection we are populating a HashMap
with all public
fields
and their value. The number of fields have gone up to the extinct where we are crossing the 64K
limit for a static
method. One of the most feasible solution was to use .properties files
for English labels as well.
The issue is resolved, and here is the proposed solution:
For the sake of discussion I will be calling this class MyLabels
. We defined a super class
for MyLabels
called MyLabelsExt
. And now we are adding labels into the super class
instead of the MyLabels
. By running some tests we confirmed that the map that we initialize in MyLables class
contains all the fields from both MyLabels
and MyLabelsExt class
.
Question: How come the 64K limit error was by passed when we started using the super class.
Thanks, Manish.