私はJavaにかなり慣れていないので、皆さんの1人がこれを行う方法を知っていることを望んでいます。アプリケーションの外部にあるメソッドに渡される引数のタイプと値の両方を、XMLのような方法でユーザーに指定させています。
例:javac myAppsName externalJavaClassmethodofExternalClass[パラメーター]
もちろん、適切なメソッドを見つけるには、メソッドがオーバーロードされる可能性があるため、適切なパラメータータイプを用意する必要があります。これが、異なるバージョン間の違いを判断する唯一の方法です。現在、パラメータは次のようにフォーマットされています。
(type)value(/ type)、例:(int)71(/ int)(string)これは、パラメーターとして渡す私の文字列です!(/ string)
私はそれらを解析し、示されたタイプのコンストラクターを取得してから、そのメソッドを実行してそのコンストラクターを実行しnewInstance(<String value>)
、新しいインスタンスをにロードしますObject
。これは問題なく機能しますが、ご存知のとおり、一部のメソッドは配列、さらには多次元配列を使用します。
私は次のように引数のフォーマットを処理することができます:...(array)(array)(int)0(/int)(int)1(/int)(/array)(array)(int)2(/int)(int)3(/int)(/array)(/array)
またはおそらくもっと良い...。{{(int)0(/int)(int)1(/int)}{(int)2(/int)(int)3(/int)}}
問題は、これをどのように実装できるかということです。プリミティブなどをargObj[0]として処理できるように、すべてをObject []配列でラップし始める必要がありますが、通常どおりに配列をロードしますか?(残念ながら、2次元配列をサポートしたい場合は、Object [] []配列にする必要があります。この実装はあまりきれいではありません。)