使用泛型比方說,我有如下因素:沒有收藏
List<Apple> myList = new ArrayList<Apple>();
如果我想打電話給myList.add(myApple)
,從Java myApple
預計有Apple
類型,而不是任何其他人(當然除了子類)。但是如果我想擁有一個對象(Blender
),並根據<>
和中沒有方法重載聲明的類型擁有不同的方法簽名呢?像這樣:
Blender<Apple> Tool = new Blender<Apple>();
Tool.blendIt(new Apple()); //expects to have only apples in here
Blender<Banana> OtherTool = new Blender<Banana>();
OtherTool.blendIt(new Banana()); //only Banana's are permitted
這可能嗎?
您可以使用'instanceof'運算符來檢查它是否爲'Banana'或'Apple'的實例。 – enrybo 2013-02-15 18:59:34
是的,我可以,但是一旦我把'Strawberry'放入'Blender'裏面就會變得很糟糕:)所以需要靈活的解決方案 – TomatoMato 2013-02-15 19:09:58