import java.util.*;
public class Favorites {
// Typesafe heterogeneous container pattern - implementation
private Map<Class<?>, Object> favorites =
new HashMap<Class<?>, Object>();
public <T> void putFavorite(Class<T> type, T instance) {
if (type == null)
throw new NullPointerException("Type is null");
favorites.put(type, instance);
}
public <T> T getFavorite(Class<T> type) {
return type.cast(favorites.get(type));
}
// Typesafe heterogeneous container pattern - client
public static void main(String[] args) {
Favorites favorites = new Favorites();
favorites.putFavorite(String.class, "StringResult");
favorites.putFavorite(Integer.class, 12);
favorites.putFavorite(Boolean.class, false);
System.out.println("results are: "
+ favorites.getFavorite(String.class)
+ favorites.getFavorite(Integer.class)
+ favorites.getFavorite(Boolean.class));
}
}
转载于:https://www.cnblogs.com/frankliiu-java/archive/2010/06/14/1758296.html
类型安全异构容器模式
本文介绍了一个使用Java实现的类型安全异构容器模式的例子。该模式允许将不同类型的对象以类型安全的方式存储在一个容器中,并能通过指定类型来获取对应的实例。示例代码展示了如何创建一个Favorites类,用于存放各种类型的最爱项。
171万+

被折叠的 条评论
为什么被折叠?



