【问题标题】:generics with different approach具有不同方法的泛型
【发布时间】:2013-03-08 11:15:26
【问题描述】:

在一次关于泛型的面试中,面试官问一个问题,有两个列表,一个列表是字符串类型(即一个数组列表是字符串类型),我们在其中添加一些字符串,现在创建第二个数组列表将是您创建的第一个列表的类型,现在可能的解决方案如下所示..

List<String> firstList = new ArrayList<String>();

public <T> List<T> createSecondList(List<T> firstList)
{
   return new ArrayList<T>();
}  

我的问题是我们可以用下面的方式表达这个吗?也请指教。

List<String> firstList = new ArrayList<String>();
 <T> List<T> createSecondList = new ArrayList(List<T> firstList);

【问题讨论】:

  • 您是在问如何调用泛型方法,或者我们如何表示它?
  • 第一种方法是这样做的。您的第二个示例(如果已编译)不是很有用:当您调用它时,您确实知道原始列表的类型,因此您不需要泛型。

标签: java generics


【解决方案1】:

没有。

这一行:

<T> List<T> createSecondList = new ArrayList(List<T> firstList);

不是有效的 Java 代码,它介于方法声明和变量声明和实例化之间。

创建第二个列表...

List<String> firstList = new ArrayList<String>();
List<String> secondList = createSecondList(firstList);

【讨论】:

【解决方案2】:

1> List&lt;String&gt; list1 = new ArrayList&lt;String&gt;(); //这是第一个类型
2> List&lt;List&lt;String&gt;&gt; list2 = new ArrayList&lt;List&lt;String&gt;&gt;(); //这是包含第一个列表类型的第二种类型

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-08-28
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多