That seems like a perfectly reasonable thing to do. The only
semantics garunteed for @Argument.Check methods will be called exactly
once after the class has been instantiated and argument fields have
been filled in; and that exceptions thrown within the method will be
caught and displayed as part of the usage string. I don't see these
semantics as incompatible with other sorts of initialization.
dan