Foo
インターフェイスを定義および実装する次のクラスを検討してください。
public class MyClass {
public Foo getFoo() {
return new FooImpl();
}
public void fooMethod(Foo foo) {
final fooImpl = (FooImpl) foo;
fooImpl.hiddenMethod();
}
public interface Foo {
void doSomething();
}
private class FooImpl implements Foo {
public void doSomething();
void hiddenMethod() {
}
}
}
外部クラスは、オブジェクトMyClass.getFoo()
を取得するために呼び出し、Foo
それを に戻す場合がありますfooMethod()
。package-private method を呼び出すことができるように、 の実装とキャストをfooMethod()
想定しています。FooImpl
Foo
Foo
FooImpl
hiddenMethod()
Foo
私の質問は、私は へのキャストに夢中ではないということですFooImpl
。同じことを行うために使用できる別のパターンはありますか?
前もって感謝します...