我是Java的新手并尝试实现此代码,但我收到了一个错误。
B.Java
public interface A{
class B; // !!getting error here
B f(); // f returns B class
}
C.Java
public class C implements A{
public class B{
private int a;
public void print(){
System.out.println(a);
}
} // end of implementation of class B
B f(){
System.out.println("default ");
}
} // end of class C
我做错了什么,如何在不出错的情况下实现此代码?
使用Java-Generics实现怎么样?
public interface A<T> {
T f();
}
这样,接口根本不需要包含类定义。您可以在实现(或您想要的其他位置)完全声明该类;
public class C implements A<C.B> {
public class B {
private int a;
public void print(){
System.out.println(a);
}
}
@Override
public B f() {
return new B();
}
}