[英]How to put a java class in a Object and use it methods
將類放入對象很容易。 但是,當我嘗試在第36行對其執行方法時: aClass.getInfo(3);
我得到了cannot find symbol
並且無法編譯。 如何在對象中使用類? 目的是根據int或其他類型使用classA或classB。
package testit;
public class TestIt {
Object aClass;
public interface InFace {
void getInfo(int i);
}
public class ClassA implements InFace {
@Override
public void getInfo(int i) {
System.out.println("ClassA: " + this.getClass() + " " + i);
}
}
public class ClassB implements InFace {
@Override
public void getInfo(int i) {
System.out.println("ClassB: " + this.getClass() + " " + i);
}
}
public void testClass() {
ClassA testA = new ClassA();
ClassB testB = new ClassB();
testA.getInfo(1);
testB.getInfo(2);
int i = 1;
if (i == 1) {
aClass = testA;
} else {
aClass = testB;
}
System.out.println("aClass: " + aClass.getClass());
// aClass.getInfo(3);
}
public static void main(String[] args) {
TestIt test = new TestIt();
test.testClass();
}
}
由於aClass
僅包含ClassA
或ClassB
,它們都是InFace
子類型, InFace
可以更改
Object aClass;
至
InFace aClass;
然后,您的InFace
類型的變量將支持一個名為getInfo(int i)
的方法,並且您的代碼將進行編譯。
您應該使用InFace
來聲明您的Object aClass;
,因為您的兩個類都實現了該接口:
InFace aClass;
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.