是否可以创建编译时检查的参数化泛型类型?

时间:2014-09-25 21:45:20

标签: java generics

我希望实现的效果如下例所示:

public <T extends Collection> T<String> mainSolution(T<String> words)
{
    return Collections2.transform(words, w -> w.length() + w.toUpperCase());
}

1 个答案:

答案 0 :(得分:0)

我认为你的意思是你希望将Collection(或任何子类)的String传递给一个进行转换的方法,并在转换后返回该集合。生成的集合与传入的集合的类型相同。

如果情况确实如此,那你只是偶然发现了一些语法。

以下是代码:

  public <T extends Collection<String>> T mainSolutions(T words)
  {
      return (T) Collections2.transform(words, w -> w.length() + w.toUpperCase());
  }

在尖括号< ... >之间你有通用类型参数,然后在T之后是方法的返回类型,显然它需要1个相同类型T的参数。 / p>