でオブジェクト型のパスを制限します。我々はContainer型を取る機能がある場合:は、我々は以下の持っていると言うコンパイル
def compute(c: Container): Unit
をオブジェクトに渡されたパッケージcom.oneまたはcom.twoからであれば私たちは知ることができません。パッケージ2からContainerインスタンスを取得するための計算機能を制限する方法はありますか?言い換えれば、com.wo。*からのタイプを制限する方法がありますか? JavaやScalaでこれを行うことはできますか?
@DavisBrodaいいえ、それは同じ質問ではありません。ここでの重要性は、具体的な型の名前ではありませんが、同じインタフェースから継承し、関数はインタフェースの型を取ります。しかし、両方の実装は異なるパッケージで定義されています。私は異なる名前を持つようにimplを更新しました。 – Mayumi
それから、コンテナではなくcontainerImplTwoになり、問題は解決されます。 1つの実装だけが必要な場合は、なぜインタフェースを使用して始めていますか? –
いいえ、Container型の実装は数多くあり、どちらのパッケージからでも実装できます。 – Mayumi