1.Collection.checkedList(new Arraylist<Dog>,Dog.class) 当类型不一致时产生,抛出一个异常。
2.异常
由于擦除的原因,将泛型应用异常时非常受限的,catch语句不能捕获泛型类型的异常,因为在编译器和运行时都必须知道异常的确切类型。泛型类也不能直接或间接继承自Throwable。
3.使用装饰器模式
装饰器模式使用分层对象来动态透明的想当个对象添加责任,装饰器指定保证在最迟的对象周围的所有对象都具有相同的基本接口,
4.使用动态代理来产生混型