我有一个类,它只能通过String参数按定义工作。
所以我考虑过使用
class MyClass<T extends String>
但是编译器发出警告,字符串是最终的,我不能扩展它
然后用
尝试class MyClass<String>
并收到警告,因为参数String隐藏了类String。
我该怎么做?
答案 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() {
//...
}
//...
}