Javaでは、f(x_1,...,x_n)->y
という形式の関数の出力のn次元データ構造を構築しています。これをJSONに変換して処理したクライアントに戻します。データ構造の深さは評価された関数への入力引数の数に依存するので(私はn
次元です)、私はパラメータのリストを渡され、リストのリストを生成する再帰関数を使ってデータ構造を生成しています2つ以上のパラメータが渡された場合、または単一のパラメータだけが渡された場合は2倍のリストになります。この方法は、出力リストを取りJSONに変換し、レスポンスオブジェクトに追加し、別の方法で呼び出された再帰的に定義されたリストのリストの生の型を避けるにはどうしたらいいですか?
static private List buildList(List<String> parameters){
if(parameters.size() > 1){
List<List> returnList = new arrayList<List>;
//call buildList to generate contents of returnList;
return returnList;
} else {
List<Double> returnList = array of values generated by another method
return returnList;
}
}
:リストを生成するための方法は、次のようになります。
私の問題は、実行時まで自分のデータ構造の次元性が分からないため、私の関数を定義する方法がわからないので、 List
およびList<List>
。理想的には、戻り値を3次元データ構造の場合はList<List<List<Double>>>
のように入力する必要がありますが、これを行うためのコードを設定する方法がわかりません。私は多くのJavaをコード化していないので、型の安全性は私にはあまり知られていない概念ですが、私はJavaの素晴らしい世界では生の型を使用するのが一般的ではないという印象を受けています。
この種の再帰パターンでの生の型の使用を避けるベストプラクティスの方法はありますか、現在の方法に固執する必要がありますか?
'List