現在、私は以下のようなTupleのArrayDequeを持っています(これはクラスを持つと考えています) :タプルのより効率的なif-statementをクラス型に関連させて実装する
private ArrayDeque<Triple<Integer, Object, Class>> paramList = new ArrayDeque<>();
オブジェクトタイプは、int型、ブール値や、日付、時間(私の実装であるのなし)として実際のクラスなどの原始的なことができます。
今、私はリストを反復し、それがどんなクラスタイプであるかによってメソッドを呼び出すのですが、明らかにこれは面倒な修正と更新になります。例えば (stがPreparedStatementのです):
for (Triple<Integer, Object, Class> param : paramList) {
if(param.getMiddle() instanceof String){
st.setString(parm.getLeft(),param.getMiddle());
}else if(param.getMiddle() instanceof Integer){
st.setInt(parm.getLeft(),param.getMiddle());
} //... more class type checks doing the same thing
}
私はこのhttps://stackoverflow.com/a/5579385/5858208ポストに出くわしたが、それは、私は本当に多くを行うことはできません実装しましたクラスではありませんよう。
私の質問は、このアイデアを実装するための効率的でメンテナンス可能な方法はありますか?それはタプルオブジェクトにどのようなクラス型があるのかということです。
downvotesとそれに応じて質問を更新する理由をお知らせください –
変数 'st'とは何ですか?あなたはsetと呼ばれるメソッドをオーバーロードして、それを呼び出すことで、クラスにその作業を任せます。 –
私はdvをしませんでしたが、Tuple - TripleとDequeue - Dequeの異常は奇妙です。 – laune