2

我有一个类,它应该根据定义仅使用 String 参数工作。

所以我考虑使用

class MyClass<T extends String>

但随后编译器发出警告,字符串是最终的,我无法扩展它

然后尝试了

class MyClass<String>

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

我需要做什么?

4

2 回答 2

3

感谢启发性的评论:“你真的需要泛型”吗?

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

interface MyInterface<T>

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

class MyClass<String> implements MyInterface<T>

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

class MyClass implements MyInterface<String>

解决了 :)

于 2012-05-20T22:10:25.230 回答
2

在我看来,您根本不需要泛型。如果您不需要,您不应该过度复杂化您的代码。如果您的类应该只使用字符串参数,则只需省略通用部分。

所以,而不是:

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

做就是了:

class MyClass {
  String myMethod() {
    //...
  }
  //...
}
于 2012-05-20T22:20:25.463 回答