我刚刚看到有人在对丑陋代码的咆哮中发布了以下内容:
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
),它 extends ArrayList<ArrayList<ArrayList<String>>>
,这将使代码看起来像这样:
public static Tuple<Data, Data> split( Data data, [..]);
虽然这种方法非常令人满意,但我不想放弃使用我缺少的某种泛型的可能性,我想知道 Java 是否有一种更美观的方法来做到这一点令人愉快的方式。
我正在使用的另一个解决方案是使用注释处理器为我解决这个问题,但是我觉得这错过了一定程度的简单性。