私は誰かが醜いコードの暴言で次のように投稿しているのを見ました:
public static
Tuple<ArrayList<ArrayList<ArrayList<String>>>,
ArrayList<ArrayList<ArrayList<String>>>>
split(
ArrayList<ArrayList<ArrayList<String>>> data, [..]);
(私によるレイアウト、これを半読めるようにするための笑える試みで)
私はこれをこの(機能しない)コードのように見せるための方法を探していました:
TypeParam T = ArrayList<ArrayList<ArrayList<String>>>;
public static Tuple<T,T> split( T data, [..]);
これまでのところ、私が見つけた最善の解決策は、クラス(この例ではクラスData
)を定義することです。ArrayList<ArrayList<ArrayList<String>>>
これにより、コードは次のようになります。
public static Tuple<Data, Data> split( Data data, [..]);
この方法は非常に満足のいくものですが、私が見逃しているジェネリックを使用する方法がある可能性をあきらめたくありません。Javaには、これをさらに美的に行う方法があるのではないかと思います。楽しい方法。
私が遊んでいる別の解決策は、注釈プロセッサを使用してこれを修正することですが、これはある程度の単純さを欠いていると感じています。