I have a constructor (for an auto generated class) that has 255 paremeters. Using ant on linux with javac 1.6.0_02. The class compiles fine and everything is good.
However when I try to compile the same class from within eclipse on windows xp with jdk 1.6, I get the following error
Too many parameters, parameter BLAH is exceeding the limit of 255 words eligible for method parameters
BLAH
is the the 256th parameter.
Is there a way to overcome this problem? Changing the auto generated class is not an option as I would need to change it every compile or change the generator. Both options are not acceptable because we can already get this class on linux.
PS: For those who are interested, the java class is generated from an IDL file using JacORB. Unfortunately the number of parameters in the class can not be reduced as it defines an interfaces between our software and other systems.
Well you're breaking the VM specification, section 4.10:
I suggest you overcome the obstacles in changing the generated code... I'm pretty surprised it works on Linux, to be honest. I wouldn't be entirely surprised if the bytecode it generated was strictly invalid, and it just happens to be working for you at the moment.
While it's always tempting to try to find ways of keeping with the existing code and ignoring the limits, I think in this case you should turn your attention to reducing the number of parameters immediately.
There are 2 options to resolve this problem:
Well, the class file spec. says: