复杂的通用Java接口和类

时间:2019-02-18 12:20:53

标签: java generics libgdx

我有以下类和接口:

public interface Curve<T extends Path<Vector2>> {
    List<T> splines();
}

public final class CachedCurve implements Curve<Path<Vector2>> {
    public CachedCurve(final Curve<Path<Vector2>> source) {
        // ...
    }    
    @Override
    public List<Path<Vector2>> splines() {
       // ...
    }
}

public class BezierCurve implements Curve<Bezier<Vector2>> {
    public BezierCurve(List<Vector2> sample, float tresholdPerpDistance) {
        // ...
    }
    @Override
    public List<Bezier<Vector2>> splines() {
        // ...
    }
}

我这样使用上面的代码:

Curve<Path<Vector2>> curve = null;
curve = new BezierCurve(new LinkedList<Vector2>(), 10f);  // Compilation error
curve = new CachedCurve(curve);

我似乎无法修复此编译错误:

Type mismatch: cannot convert from BezierCurve to Curve<Path<Vector2>>

从(显然不正确的)代码中可能不清楚我要做什么。 我想要一个通用接口Curve。然后,我想要一个可以缓存任何Curve的类,以及一个使用Bezier样条线对Curve进行特殊实现的类。我希望对此进行通用编码,以便编写:

Curve<Path<Vector2>> curve = null;
curve = new BezierCurve(/* */);
curve = new CachedCurve(curve);

libGDX中的相关类别:

0 个答案:

没有答案
相关问题