以下に示すように、多くの子を持つドメインクラスがあります ( B はインターフェースタイプで、 B1 と B2 ) B インターフェースを実装しています。
私のメインクラスでわかるように、 (B1 b1 = (B1) a.getB();) をキャストする必要があり、それが B1 または B2 であることがわかっているので、私の知識では問題ありません。
私が抱えている問題は、型が大きくなる可能性があることです.Aを使用する人は、Bのインスタンスをチェックし、B1またはB2の特定の値にアクセスするために、より多くの条件を設定する必要があります...このキャストをスキップして、将来的に多くの条件を減らす
public class TestMain
{
public static void main(String[] args)
{
A a = new A();
//this can be B1 or B2
B1 b1 = (B1) a.getB();
}
}
public class A
{
private B b;
protected B getB()
{
return b;
}
protected void setB(B b)
{
this.b = b;
}
}
public interface B
{
void test();
}
public class B1 implements B
{
@Override
public void test()
{
// TODO Auto-generated method stub
}
}
public class B2 implements B
{
@Override
public void test()
{
// TODO Auto-generated method stub
}
}