java中的对象扩展

Sla*_*off 2 java generics class-hierarchy

在java中如果你有一个对象需要一个泛型来扩展一个特定的类,但你想用它的扩展来实现它有没有办法让java知道你实际上并没有违反自己的规则?下面的示例代码假设没有意义.

public interface WantedInterface extends StaticInterface<WantedObject>

public class WantedObject extends OlderObject

public class OlderObject extends UsefulObject

public interface StaticInterface<T extends UsefulObject>
Run Code Online (Sandbox Code Playgroud)

所以我的问题基本上是,有没有办法让我告诉我的StaticInterface我的WantedObject实际上扩展了我的UsefulObject,即使它不是直接的?我真的不希望不必将我的WantedObject重写为UsefulObject的纯扩展,因为OlderObject包含许多有用的代码,我正在写一个数据库,我正在使用的序列需要了解当前状态OlderObject.我在写这篇文章时意识到我可以让WantedInterface直接扩展OlderObject的接口,但我想知道是否有办法避免这种情况.

编辑:好的,在一个非常奇怪的事情扭曲,我能够通过将WantedObject的扩展名更改为UsefulObject来解决问题,然后将其更改为原样.也许问题只是一些临时的IDE事情?我正在使用eclipse,它有偶然的问题吗?

das*_*ght 5

A extends B传递性的,这是一种奇特的说法,如果A extends BB extends C,那么A extends C也是如此.例如,编译器对以下代码没有任何问题:

UsefulObject uo = new WantedObject();
Run Code Online (Sandbox Code Playgroud)