我對編程略微陌生,而且我被卡住了。假設我在一個項目中有五個不同的類:foo1,foo2,foo3,foo4和foo5,它們都做了不同但類似的事情。現在說我需要創建每個對象的新對象,例如: foo1 bar1 = new foo1(); foo2 bar2 = new foo2(); foo3 bar3 = new foo3(); 等。 當然有效,但如果我可以在單個for循環中實例化所有我需要的對象,或者至少放置所有想要創建的對象,我真的試圖找到一種節約大量空間的方法一個單獨的數組來解決。如果它是全部相同的類,我可以得到它的工作,但如果它是不同的。它甚至有可能嗎?在一個for循環中創建不同類的新對象
1
A
回答
0
嘗試閱讀您可以在Java中使用的多態性。接口和抽象類如何工作。什麼是extends
和Java等implements
關鍵字...
我發現這些教程,看起來不錯:
0
如果類名是按順序,那麼你就可以使用如下:
For(int i = 0; i < 10; i++) {
try {
Class<?> cls = Class.forName("foo"+i);
arr[i] = cls.newInstance();
} catch (ClassNotFoundException e) {
System.out.println("Class not found " + e);
}
}
但由於所有的對象都是異組eneous,陣列將必須是類型Object[]
0
聽起來像factory method pattern是你在找什麼。
您嘗試多態處理的任務與平常不同,因爲實例化通常要求您知道要創建的對象的具體類型。工廠將允許你這樣做。
首先,你需要確保你想從同一個接口實例化派生類型:
interface Foo { }
class Foo1 implements Foo { }
class Foo2 implements Foo { }
然後,您可以定義一個工廠類型:
interface FooFactory {
Foo createFoo();
}
創建的實現FooFactory
返回不同類型Foo
:
class Foo1Factory implements FooFactory {
public Foo createFoo() {
return new Foo1();
}
}
class Foo2Factory implements FooFactory {
public Foo createFoo() {
return new Foo2();
}
}
存儲這些工廠的數組:
FooFactory[] factories = {
new Foo1Factory(),
new Foo2Factory()
}
然後通過數組循環,呼籲每個工廠createFoo()
:
for(FooFactory factory : factories) {
Foo foo = factory.createFoo();
//...
}
相關問題
- 1. 在for循環中創建對象
- 2. 在for循環中創建對象javascript
- 3. 使用for循環創建20個不同的對象
- 4. 在Java for循環中創建幾個新對象
- 5. 通過一個對象創建一個新對象的循環
- 6. 在for循環中創建一個對象
- 7. 在while循環中用不同的變量創建一個類對象
- 8. 如何使用不同的名稱在for循環中創建多個對象?
- 9. 循環創建新對象?
- 10. 在循環體中創建新對象
- 11. 在循環中創建新對象
- 12. 如何使用for循環在類中創建對象?
- 13. Foreach vs for循環在C#中。新對象的創建,可以在循環,但不可能在foreach循環
- 14. Uncaught TypeError:undefined不是函數,在for循環中創建的對象
- 15. 從for循環的輸出創建一個js對象
- 16. 在for循環中創建對象。我遺漏了一點
- 17. 在for循環中創建新列表
- 18. 的Java不承認是在一個循環中創建的對象,循環
- 19. 如何動態創建一個循環中的新對象
- 20. 解析javascript for循環,創建多個對象而不重複
- 21. 創建一個「for」循環,返回不同數量的字符
- 22. JAVA - For循環不創建一個新的陣列
- 23. For循環不更新結構對象
- 24. 在控制器中使用for循環同時創建多個對象
- 25. 在一個循環中創建Ember.Select對象綁定到不同的車型
- 26. 在循環中添加同一類的新對象
- 27. 在一個循環中創建一個深(水平)對象
- 28. 在一個循環中創建唯一的對象指針
- 29. 創建一個For循環在R中是不連續的
- 30. 在python的同一個類中創建一個類的新對象?
你應該閱讀有關*什麼是多態*。 –