変数を使用してさまざまなクラスをインスタンス化しようとしています。例えば:
Object blah;
class1 ex1;
class2 ex2;
public void test(int i){
if(i == 1){
blah = new class1();
} else {
blah = new class2();
}
}
Javaでこれを行うにはどうすればよいですか?
編集 1: 申し訳ありませんが、もう少し具体的に説明させてください。
A、B、Cの3つのクラスがあるとしましょう。
A は私のメインの場所であり、B を使用します。B は C を使用します。
問題はこれです:
public class B1{
C instanceC;
public B1(){
instanceC = new C();
//uses a method of instanceC.
}
}
public class B2{
C instanceC;
public C(){
instanceC = new C();
//uses a method of instanceC.
}
}
そしてAで:
public class A implements MouseListener{
Object blah;
B1 instanceB1;
B2 instanceB2;
public void test(int i){
if(i == 1){
blah = new B1();
} else {
blah = new B2();
}
}
//I left the other mouseListener methods blank
public void mouseReleased(int i){
blah.instanceC.someMethod();
}
public static void main(String[] args) {
A instanceA = new A();
A.test(1);
}
}
編集 2: instanceC.someMethod() または instanceC.someVariable を使用しようとすると、null ポインター例外が発生します。
これが十分に明確だったことを願っています。わかりにくい場合はお知らせください。さらに単純化できるかどうかを確認します。すでに助けてくれた人々に感謝します!