Java声明类型参数只有字符串

时间:2012-05-20 22:01:57

标签: java generics

我有一个类,它只能通过String参数按定义工作。

所以我考虑过使用

class MyClass<T extends String>

但是编译器发出警告,字符串是最终的,我不能扩展它

然后用

尝试
class MyClass<String>

并收到警告,因为参数String隐藏了类String。

我该怎么做?

2 个答案:

答案 0 :(得分:3)

感谢有启发性的评论:“你真的需要仿制药”吗?

我查看了我的代码并发现了问题。我想使用一个类型参数,因为我正在用一个

实现一个接口
interface MyInterface<T>

由于某种原因,我认为我需要实现类中的类型参数,例如:

class MyClass<String> implements MyInterface<T>

但这没有意义。我需要做的是:

class MyClass implements MyInterface<String>

解决了:)

答案 1 :(得分:2)

在我看来,你根本不需要仿制药。如果您不需要,则不应过度复杂化代码。如果您的类只能使用String参数,则只需省略泛型部分。

所以,而不是:

class MyClass<T extends String> {
  T myMethod() {
    //...
  }
  //...
}

只是做:

class MyClass {
  String myMethod() {
    //...
  }
  //...
}