摘要: 每个基于MyBatis的应用都是以一个SqlSessionFactory的实例为中心的。SqlSessionFactory的实例可以通过SqlSessionFactoryBuilder获得。而SqlSessionFactoryBuilder则可以从XML配置文件或一个预先定制的Configurati 阅读全文
posted @ 2018-01-18 13:38 Storm_L 阅读(389) 评论(0) 推荐(0) 编辑
摘要: 由于擦除的原因,将泛型运用于异常是非常受限的。catch语句不能捕获泛型类型的异常,因为在编译期和运行期都必须知道异常的确切类型。但是,类型参数可能会在一个方法的throw子句中用到。这使得你可以编写随检查型异常的类型而发生变化的泛型代码。请看下面的例子。 阅读全文
posted @ 2018-01-04 20:32 Storm_L 阅读(578) 评论(0) 推荐(0) 编辑
摘要: 因为可以向Java SE5之前的代码传递泛型容器,所以旧式代码仍有可能破坏你的容器。Java SE5中有一组便利工具,可以解决这种情况下类型检查的问题。 它们是静态方法checkedCollection(); checkedList(); checkedMap(); checkedSet(); ch 阅读全文
posted @ 2017-12-27 17:12 Storm_L 阅读(1241) 评论(0) 推荐(0) 编辑
摘要: 自限定 自限定将强制泛型当做自己的边界参数来使用。自限定所做的,就是要求在继承关系中,像下面这样使用这个类: class A extends SelfBounded<A> {} 它的意义是可以保证类型参数必须与正在被定义的类相同。自限定只能强制作用于继承关系。如果使用自限定,就应该了解这个类所用的类 阅读全文
posted @ 2017-12-27 15:28 Storm_L 阅读(5186) 评论(0) 推荐(0) 编辑
摘要: 无界通配符<?>很容易和原生类型混淆。 以List为例: List表示持有任何Object类型的原生List,其实就等价于List<Object> List<?>表示某种具有特定类型的非原生List(同构集合),只是我们不知道它的具体类型是什么,所以我们就不允许往里set数据 看下面例子: 捕获转换 阅读全文
posted @ 2017-12-08 15:58 Storm_L 阅读(1382) 评论(1) 推荐(0) 编辑
摘要: (1) <T extends A> 因为擦除移除了类型信息,而无界的泛型参数调用的方法只等同于Object。但是我们可以限定这个泛型参数为某个类型A的子集,这样泛型参数声明的引用就可以用类型A的方法了,语法为<T extends A>。下面是一个例子: (2) <? extends T> / <? 阅读全文
posted @ 2017-12-07 10:27 Storm_L 阅读(2814) 评论(0) 推荐(0) 编辑
摘要: 先看一个例子: 虽然泛型类的参数不同,但是结果却是TRUE。这是因为在泛型代码内部,无法获得任何有关泛型参数类型的信息。 Java泛型是通过擦除来实现的。这意味着当你在使用泛型时,任何具体的类型信息都被擦除了,你唯一知道的是你在使用一个对象。因此List<String>和List<Integer>在 阅读全文
posted @ 2017-11-30 18:58 Storm_L 阅读(863) 评论(0) 推荐(1) 编辑
摘要: 泛型同样也可以使用在匿名内部类中。 下面的例子是对 Java泛型(3):泛型方法 中例(2)的修改。 阅读全文
posted @ 2017-11-29 14:47 Storm_L 阅读(2984) 评论(0) 推荐(0) 编辑
摘要: 泛型还可以同样运用在方法。是否拥有泛型方法与其所在的类是否是泛型类没有关系。 无论何时,只要你能做到,都应该尽量使用泛型方法,如果泛型方法可以取代将整个类整个类泛型化,那么就应该只使用泛型方法。 下面是几个泛型方法的例子。 (1) 利用泛型方法和可变参数列表为List添加元素 (2) 一个更通用的对 阅读全文
posted @ 2017-11-29 13:55 Storm_L 阅读(732) 评论(1) 推荐(0) 编辑
摘要: 泛型不仅可以在类上实现,也可以在接口上实现。JDK中[Iterable<T> <-- Collection<E> <-- List<E>/Queue<E>/Set<E>]都是泛型接口。 下面是一个泛型接口的例子。这是一个一个生成器的例子。生成器用来专门创建对象。这是工厂方法设计模式的一种应用。一般来 阅读全文
posted @ 2017-11-24 18:27 Storm_L 阅读(288) 评论(0) 推荐(0) 编辑