java – 我工厂出了什么问题?
发布时间:2020-12-15 04:51:40 所属栏目:Java 来源:网络整理
导读:我有一些像这样的代码: public abstract class Foo { public static Foo getFoo() { return new FooImpl(); } abstract void DoFoo(); private class FooImpl extends Foo { public FooImpl() { } @Override void DoFoo() { } }} 但Eclipse告诉我没有封闭的
我有一些像这样的代码:
public abstract class Foo { public static Foo getFoo() { return new FooImpl(); } abstract void DoFoo(); private class FooImpl extends Foo { public FooImpl() { } @Override void DoFoo() { } } } 但Eclipse告诉我没有封闭的Foo类型的实例是可访问的.那我怎么能让它运作起来呢? 我试图让它尽可能简单,看它是否会编译: public abstract class Foo { public static Foo getFoo() { return new FooImpl(); } private static class FooImpl extends Foo { public FooImpl() { } } } 我仍然得到同样的错误.我错过了什么? 固定!我更改了行返回new FooImpl();返回新的Foo.FooImpl(); 解决方法
优秀的解释
here – 简而言之,你需要使类FooImpl静态,所以它只绑定到外部类,而不是外部类的特定实例(你没有). getFoo方法看起来也应该是静态的,顺便说一下 – 否则,你打算在什么时候调用Foo?
(编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |