私はxmlスキーマを持っています(trangを使って自動的に生成されます)。これらの変更はあまり精巧ではありません。このスキーマからは、一部の要素のみが追加または削除されます。このスキーマから、私はXML文書をアンマーシャリングするJavaクラス(cxfを使用)を生成しています。Javaクラスに特定のメソッドがあるかどうかをチェックする方法?
スキーマが変更されると、自動生成されたJavaクラスも変更されます。スキーマの場合と同様に、Javaクラスの変更はあまり大きくありません。たとえば、要素がelemA
と指定された場合は、スキーマに追加されます。いくつかの関連する関数は、自動生成JavaクラスにgetElemA()
とsetElemA()
が追加されています。
ここで、これらの自動生成クラスに特定の関数が存在することを確認するにはどうすればよいですか? 1つの解決策は、xmlのすべての可能な要素がカバーされるようにスキーマを手書きすることです。これは私が最終的にやることです。しかし、今のところ、私はxmlファイルの形式を修正していません。
UPDATE:
方法getElemA()
が自動生成されたクラスに定義されている可能性があります。私はこれらのクラスの自動生成を制御できません。しかし、私のメインクラスでは、次のコードがある場合、
If method getElemA exists then
ElemA elemA = getElemA()
このコードは常にメインクラスにあります。メソッドgetElemA()
が自動生成クラスの1つで生成されても問題はありません。しかし、このメソッドが生成されない場合、コンパイラはこのメソッドがクラスのいずれにも存在しないと不平を言っています。
コンパイル時にコンパイル時にこの関数について不平を言うことができない方法はありますか?
ありがとうございます。私はこのメソッドを使いたいので、そのクラスにすべてのメソッドを記述しなければならないが、自動生成されたクラスはそのメソッドを持たないかもしれない。コンパイラをコンパイル時に無視する方法は? – Dilawar
invokeを使用すると、コンパイルエラーが発生します...更新されたansを確認してください。 – havexz
ありがとうございました。 'try-catch'で囲んだ後、それは魅力的に機能しました。 – Dilawar