Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/343.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
在java中重用类型参数的值_Java_Generics_Annotations - Fatal编程技术网

在java中重用类型参数的值

在java中重用类型参数的值,java,generics,annotations,Java,Generics,Annotations,我刚刚看到有人在一篇关于丑陋代码的咆哮中发布了以下内容: public static Tuple<ArrayList<ArrayList<ArrayList<String>>>, ArrayList<ArrayList<ArrayList<String>>>> split( ArrayList<ArrayList<ArrayList

我刚刚看到有人在一篇关于丑陋代码的咆哮中发布了以下内容:

public static 
    Tuple<ArrayList<ArrayList<ArrayList<String>>>, 
          ArrayList<ArrayList<ArrayList<String>>>>     
    split(
          ArrayList<ArrayList<ArrayList<String>>> data, [..]);
虽然这种方法非常令人满意,但我不想放弃我所缺少的使用泛型的方法,我想知道Java是否有一种更美观的方法来实现这一点

我正在使用的另一个解决方案是使用注释处理器来为我解决这个问题,但是我觉得这忽略了一定程度的简单性。

怎么样

 public static <T extends ArrayList<ArrayList<String>>> Tuple<T,T> 
      split(T data);
公共静态元组
分割(T数据);
但是我同意@esej的观点,您可能需要一些类来封装字符串列表列表数据结构


我也不确定您是否应该在其中硬编码
ArrayList
(与使用界面
List
)。

您可以执行以下操作:

public static <T extends List<List<List<String>>>>  Tuple<T, T> split(T data) {

}
公共静态元组拆分(T数据){
}

在我看来,这并不能让它看起来更好。

你确定你没有试图用java编写太lispy的代码吗?如果需要一个字符串列表,我想不出一个字符串列表列表在任何OO语言中都不应该拥有自己的类。(对不起,不知道泛型)是的,我同意。这更像是一个让我疑惑的假设情况。哦,哇。。我怎么会错过这个?!我同意这种情况很少见,这更多的是一个假设性的问题。
 public static <T extends ArrayList<ArrayList<String>>> Tuple<T,T> 
      split(T data);
public static <T extends List<List<List<String>>>>  Tuple<T, T> split(T data) {

}