java interface泛型_java – 使用泛型和接口实现组合

我正在努力实现以下目标:

我的类X有一个通用的Y.然而,这个泛型Y需要访问X的资源,我想通过接口来处理它,以便允许其他人继承任意选择的类.

然而,我目前的方法会产生一系列泛型:

public interface X>> {

Object getO();

}

public interface Y>> {

void doSomething();

}

我想要实现的目标:

public class Goal implements Y {

private final x minix;

public Goal(x minix) {

this.minix = minix;

}

@Override

public doSomething() {

x.getO();

}

}

如果没有使用抽象类的常用方法和组合的构造函数实现,我如何实现我的目标?

最佳答案 接口的泛型类型参数相互依赖.要解决递归问题,必须为每个接口引入第二个类型参数:

interface X, B extends X> {

A getY(); //example

Object getO();

}

interface Y, B extends X> {

B getX(); //example

void doSomething();

}

目标类:

public class Goal, B>> implements Y, B> {

private final B minix;

public Goal(B minix) {

this.minix = minix;

}

@Override

public B getX() {

return minix;

}

@Override

public void doSomething() {

minix.getO();

}

}

我正在努力实现以下目标: 我的类X有一个通用的Y.然而,这个泛型Y需要访问X的资源,我想通过接口来处理它,以便允许其他人继承任意选择的类. 然而,我目前的方法会产生一系列泛型: public interface X>> { Object getO(); } public interface Y>> { void doSomething(); } 我想要实现的目标: public class Goal implements Y { private final x minix; public Goal(x minix) { this.minix = minix; } @Override public doSomething() { x.getO(); } } 如果没有使用抽象类的常用方法和组合的构造函数实现,我如何实现我的目标? 最佳答案 接口的泛型类型参数相互依赖.要解决递归问题,必须为每个接口引入第二个类型参数: interface X, B extends X> { A getY(); //example Object getO(); } interface Y, B extends X> { B getX(); //example void doSomething(); } 目标类: public class Goal, B>> implements Y, B> { private final B minix; public Goal(B minix) { this.minix = minix; } @Override public B getX() { return minix; } @Override public void doSomething() { minix.getO(); } }
经验分享 程序员 微信小程序 职场和发展