2
請原諒我的無知,但我無法在其他地方找到答案。Java:如何將一個類傳遞給一個函數實例化
我有以下代碼:
int value = 5;
Strategy s = new Strategy(convert(value));
mainClass.setStuff(s, value);
策略與被基於「價值」的轉換的數初始化。 mainClass使用未轉換的「值」。
我想要做的就是簡化這個過程,只給mainClass提供哪些Strategy使用的信息,以及哪些未轉換的值,因此mainClass應該做策略的實例化和初始化並處理值。
在C++中,這將是可能的模板:
int value = 5;
mainClass.setStuff<Strategy>(value);
我可以使這項工作在Java中不知何故?它似乎不像C++那樣使用泛型,Java不能推斷參數的類型,所以我無法初始化策略。
但是,那不就是說要傳遞一個對象給setStuff嗎?換句話說,我需要實例化策略,將其傳遞給setStuff,然後再次實例化它以供使用?我在這裏看不到優勢。 – Cerno 2012-04-07 01:27:51
@Cerno不,你正在傳遞對象的'Class',而不是對象本身。如果你想傳入'Strategy'類,你可以調用'setStuff(Strategy.class,value)'。 – Jeffrey 2012-04-07 01:30:25
啊,我明白了。我會給那個一個去。 – Cerno 2012-04-07 01:32:12