我有一个类,它应该根据定义仅使用 String 参数工作。
所以我考虑使用
class MyClass<T extends String>
但随后编译器发出警告,字符串是最终的,我无法扩展它
然后尝试了
class MyClass<String>
并收到警告,因为参数 String 隐藏了类 String。
我需要做什么?
感谢启发性的评论:“你真的需要泛型”吗?
我查看了我的代码并发现了问题。我想使用类型参数,因为我正在实现一个接口
interface MyInterface<T>
出于某种原因,我认为我需要实现类中的类型参数,例如:
class MyClass<String> implements MyInterface<T>
但这没有意义。我需要做的是:
class MyClass implements MyInterface<String>
解决了 :)
在我看来,您根本不需要泛型。如果您不需要,您不应该过度复杂化您的代码。如果您的类应该只使用字符串参数,则只需省略通用部分。
所以,而不是:
class MyClass<T extends String> {
T myMethod() {
//...
}
//...
}
做就是了:
class MyClass {
String myMethod() {
//...
}
//...
}