我是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
我做错了什么以及如何在不出错的情况下实现此代码?
答案 0 :(得分:0)
使用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();
}
}