好的,所以我有一个参数接口,它的实现有一个内部类。似乎我不能以任何方式引用内部类的完整(通用)类型,因为它本身没有参数化,并且仅隐式使用封闭类的类型参数:
public interface TestA<R> {
public Class<? extends R> getTheRClass();
}
public class TestB<Z> implements TestA<TestB<Z>.InnerStuff> {
public class InnerStuff {
List<R> iCantBeStatic;
}
InnerStuff myStuff;
@Override
public Class<? extends TestB<Z>.InnerStuff> getTheRClass() {
// return InnerStuff.class;
// return myStuff.getClass();
// return TestB.InnerStuff.class;
// return TestB<Z>.InnerStuff.class;
throw new AngryProgrammerException();
}
}
有没有办法返回有问题的类并让编译器识别正确的类型?是的,我知道有 1,001 种方法可以解决这个问题(使内部类静态、重构因此没有内部类等等)我想知道是否有一个表达式在该覆盖中有效,或者如果不存在这样的表达......