我有下一个层次的类
class MyObject {
}
class FirstChild extends MyObject {
}
class SecondChild extends MyObject {
}
class Calculator<T extends MyObject> {
public Integer calculateValue(T supperObject) {
return 10;
}
}
class IntegerCalculator extends Calculator<FirstChild> {
@Override
public Integer calculateValue(FirstChild supperObject) {
return super.calculateValue(supperObject);
}
}
class SecondChildCalculator extends Calculator<SecondChild> {
@Override
public Integer calculateValue(SecondChild supperObject) {
return super.calculateValue(supperObject);
}
}
class AbstractUsefulService {
protected Calculator<? extends MyObject> calculator;
public AbstractUsefulService(
Calculator<? extends MyObject> calculator
) {
this.calculator = calculator;
}
}
class ImplementationOfAbstractUsefulService extends AbstractUsefulService{
public ImplementationOfAbstractUsefulService(
SecondChildCalculator calculator
) {
super(calculator);
}
public void doJob(){
calculator.calculateValue(new SecondChild());
}
}
我这里有一个很大的问题计算器。calculatevalue(newsecondchild());-必修的?扩展了myobject,但找到了第二个子对象。我读了很多文章,只找到了一个解决方案和一个对abstractusefulservice的泛型,并在connectionservice中使用这个泛型,但我不想这样做。没有abstractusefulservice中的泛型,如何解决问题?
1条答案
按热度按时间mbzjlibv1#
没有abstractusefulservice中的泛型,如何解决问题?
你不能,如果你想通过考试的话
calculator
至AbstractUsefulService
.你需要知道物体的类型
calculator.calculateValue
我会接受的。唯一的办法就是在
ImplementationOfAbstractUsefulService
班级: