本文共 1511 字,大约阅读时间需要 5 分钟。
这位兄弟写的已经很棒了,
其实泛型就和方法中的参数类型差不多,更好的地方在于还可以给接口用 给类用,限制输入类或者方法的参数的类型。
< , , , , >
你比如说我这里Mapper定义了4个泛型,那我初始化Mapper的时候,我必须是要把这四种类型的对象给传进来的。
Longwritable就是Long类型
Text就是文本类型
Int就是整型
这些只是在Hadoop里换了名字,你可别不认识了。
2016年12月23日 14:35:55 阅读数:1001更多
个人分类:
package fft.generics;
//定义接口,接口中使用泛型 public interface Pair<K, V> { public K getKey(); public V getValue(); }
package fft.generics;
/** * * @ClassName: OrderPair * @Description: * 总体来说,泛型机制能够在定义类、接口、方法时把“类型”当做参数使用,有点类似于方法声明中的形式参数,如此我们就能通过不同的输入参数来实现程序的重用。不同的是,形式参数的输入是值,而泛型参数的输入是类型。 命名规则 类型参数的命名有一套默认规则,为了提高代码的维护性和可读性,强烈建议遵循这些规则。JDK中,随处可见这些命名规则的应用。 E - Element (通常代表集合类中的元素) K - Key N - Number T - Type V - Value S,U,V etc. – 第二个,第三个,第四个类型参数…… 注意,父类定义的类型参数不能被子类继承。 也可以同时声明多个类型变量,用逗号分割,例如: * @author: denghongwei * @date: 2016-12-23 下午2:12:14 * @param <K> * @param <V> */ public class OrderPair<K, V> implements Pair<K, V> { private K key; private V value; @Override public K getKey() { // TODO Auto-generated method stub return key; } @Override public V getValue() { // TODO Auto-generated method stub return value; } public OrderPair(K key, V value) { super(); this.key = key; this.value = value; System.out.println(key+ " " +value); } public static void main(String[] args) { Pair<String, Integer> p1 = new OrderPair<String, Integer>("hello", 20170101); Pair<String, String> p2 = new OrderPair<String, String>("hello", "上海市"); Pair<String, Tax<String>> p3 = new OrderPair<String, Tax<String>>("大家好", new Tax<String>(" 新的一年")); } }转载地址:http://zzvws.baihongyu.com/