何百ものメソッドを持つインターフェイス(ResultSet
)を実装する必要があります。 ここでは、これらのメソッドのサブセットのみを実装し、他のメソッドにはNotImplementedError
を投げます。 JavaではKotlin - クラスのすべてのメソッドに対してNotImplementedErrorをスローするスマートな方法はありますか?
私は2つの解決策が見つかりました:
- が
NotImplementedError
をスローするすべてのメソッドを宣言し、ResultSet
を実装する抽象クラスAbstractResultSet
を作成します。ハックはありませんが、定型コードがたくさんあります。 - にすべてのメソッドを一緒に実装するために
Proxy.newProxyInstance
を使用してください。コードが少なくて済みますが、他のコーダーにはあまり即座に使用できません。
Kotlinには3番目のオプションがありますか?
私の場合、SQLServerBulkCopy
を介してSQLServerにインポートするには、IBMデータセット(パック小数点、バイナリフィールド、ゾーン番号、可変長の行など)を使用してResultSet
を実装する必要があります。私はこのクラスによってどのResultSet
メソッドが呼び出されているのかわかりません。今のところ、実装されていないメソッドへの呼び出しを記録する「最も使用される」メソッドのみを実装します。
この回答は、@Andrewソリューションの改善ですが、基本的に同じアイデアを共有しています。私は各メソッドのTODOでデフォルトの実装を提供するインターフェイスを拡張します。単純ですが、IDEは仕事をしますが、私は定型コードをたくさん作成します。 – Fraquack