我怎样才能有一个类型引用引用任何实现一组接口的对象?
例如,我可以有这样的泛型类型:
Java的:
public class Foo<T extends A & B> { }
Run Code Online (Sandbox Code Playgroud)
C#
public class Foo<T> where T : A, B { }
Run Code Online (Sandbox Code Playgroud)
这就是如何拥有类范围的泛型类型.但是,我想简单地拥有一个数据成员,它引用任何扩展给定接口集的对象.
例:
public class Foo
{
protected <? extends A, B> object;
public void setObject(<? extends A, B> object)
{
this.object = object;
}
}
Run Code Online (Sandbox Code Playgroud)
如果有可能有这种类型的语法,我怎么能在Java和C#中做到这一点?
我意识到我可以创建另一个扩展所有所需接口的接口.但是,我不认为这是最优的,因为它不必要地添加另一种类型,其唯一目的是绕过语法.虽然这是一个非常小的问题,但就优雅而言,它有点令人痛苦.