我想编写一个通用服务,该服务应与特定类型的对象一起使用。当我编写该服务的自定义实现时,我想反对是可变的。因此,我想覆盖创建该对象的方法。
但这是行不通的。在Java中不可能实现以下目标吗?
class MyService<T extends Foo> {
//Type mismatch: cannot convert from Foo to T
public T createObject() {
return new Foo();
}
public void run() {
T t = createObject();
//work with the object
}
}
class Bar extends Foo;
class CustomService<Bar> {
@Override
public Bar createObject() {
return new Bar();
}
}
class NewArrayList extends ArrayList {
}
abstract class MyService<T> {
public abstract T createObject();
public void run() {
T t = createObject();
//work with the object
}
}
class CustomService extends MyService<NewArrayList> {
@Override
public NewArrayList createObject() {
return new NewArrayList();
}
}
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句