此代码是非法的,因为Bar不能使用通用T,因为它属于Foo,而Bar是静态的。 :(有没有办法让两个类使用相同的泛型?
public interface Foo<T> {
public interface Bar {
public void bar(T t);
}
void foo(T t, Bar bar);
}
我的问题是,是否有一个合理的解决方法这个问题吗?我真的需要Foo和酒吧中使用相同的通用类型,因为酒吧是一个富监听器类,需要返还相同种类。当然,我可以用两个泛型(如Bar<P>
),并始终分配相同的类型T和P,但是这是时髦且容易出错是否有一个清晰的解决方案
泛型类型参数仅适用于实例,而不是静态的成员或类型。 – SLaks
在我看来,强制两个实例使用相同类型参数的地方是当它们一起使用时。你有一个示例用例(带代码)吗? –
不需要有一些类继承Foo或Bar来使用它们中的任何一个吗?另外,它是否有助于制作特定类型的Bar:'public interface Bar' –
mbomb007