Closed. This question needs details or clarity。它当前不接受答案。
想改善这个问题吗?添加详细信息并通过editing this post阐明问题。
5年前关闭。
我有2个类,彼此之间具有泛型。但是当他们在一起开会时,它们的参数设置存在问题。这是课程:
在这里,AController应该被参数化为
这是参数化示例:
这里的AController应该被参数化,但是如何?再次,这将是非常超负荷的。不建议使用通配符。
编写此代码的原因是,每个孩子的孩子之间在类中都有一个引用。我以前的版本在控制器上的视图中只有一个引用,而该实现只有一个简单的泛型。但是现在我不知道如何解决这个问题。
想改善这个问题吗?添加详细信息并通过editing this post阐明问题。
5年前关闭。
我有2个类,彼此之间具有泛型。但是当他们在一起开会时,它们的参数设置存在问题。这是课程:
public abstract class AView<T extends IController> {
protected T controller;
}
public abstract class AController<T extends AView> implements IController {
protected T view;
}
在这里,AController应该被参数化为
<T extends AView<AController<T>>>
(但是看起来太重载了?)这是参数化示例:
public abstract class AWindowView<T extends AController> extends AView<T> {}
这里的AController应该被参数化,但是如何?再次,这将是非常超负荷的。不建议使用通配符。
编写此代码的原因是,每个孩子的孩子之间在类中都有一个引用。我以前的版本在控制器上的视图中只有一个引用,而该实现只有一个简单的泛型。但是现在我不知道如何解决这个问题。
最佳答案
最通用的方法是使视图和控制器都有两个类型参数,一个用于视图,一个用于控制器。这样一来,每件事物都可以引用自己和另一件事。
public abstract class AView<V extends AView<V, C>,
C extends AController<V, C>> {
protected C controller;
}
public abstract class AController<V extends AView<V, C>,
C extends AController<V, C>>
implements IController {
protected V view;
}
08-24 12:35