我也有類似的類產品製造工廠:如何製作參數化方法?
package com.nda.generics;
import java.util.ArrayList;
import java.util.Collection;
import java.util.List;
import com.nda.generics.Sizeable.Size;
public class ProductFactory{
private Collection<? extends Sizeable> sources;
public ProductFactory(Collection<? extends Sizeable> sources) {
this.sources=sources;
}
public void setSources(Collection<? extends Sizeable> sources) {
this.sources=sources;
}
public Collection<Product> makeProductList() {
Collection<Product> products=new ArrayList<Product>();
for (Sizeable item:sources) {
switch(item.getSize()) {
case BIG: products.add(new Sausage()); break;
case MIDDLE: products.add(new Feets()); break;
case LITTLE: products.add(new Conservative()); break;
}
}
return products;
}
public class Conservative extends Product {
private Conservative(){}
}
public class Feets extends Product {
private Feets(){}
}
public class Sausage extends Product {
private Sausage(){}
}
}
這家工廠生產的用動物的大小的產品清單。但我還需要參數化方法/類,以便設置產品類型,用於檢驗新的Feets(使用構造函數的參數)。我該怎麼做?謝謝。
我覺得我可以幫你,但我不明白你的問題。我沒有看到你的構造函數的參數。如果您事先了解它們,那麼您可以簡單地將它們從您的工廠傳出。如果您事先不知道該參數,則必須在運行時通過傳遞類參數來告訴您哪種類型。 –
2012-02-14 20:48:55