java中没有类似c#、scala中的tuple元组类,只能自己动手,丰衣足食了,见下面的代码:
Tuple 抽象类
1 import java.util.Optional; 2 3 /** 4 * Tuple元组类 5 * 6 * @since: 12/4/15. 7 * @author: http://yjmyzz.cnblogs.com/ 8 */ 9 public abstract class Tuple { 10 11 public abstract <A> Optional<A> _1(); 12 13 public abstract <B> Optional<B> _2(); 14 15 public abstract <C> Optional<C> _3(); 16 17 public abstract <D> Optional<D> _4(); 18 19 public abstract <E> Optional<E> _5(); 20 21 public static <A, B> Tuple of(A a, B b) { 22 return new Tuple2(a, b); 23 } 24 25 public static <A, B, C> Tuple of(A a, B b, C c) { 26 return new Tuple3(a, b, c); 27 } 28 29 public static <A, B, C, D> Tuple of(A a, B b, C c, D d) { 30 return new Tuple4(a, b, c, d); 31 } 32 33 public static <A, B, C, D, E> Tuple of(A a, B b, C c, D d, E e) { 34 return new Tuple5(a, b, c, d, e); 35 } 36 37 38 public static void main(String[] args) { 39 Tuple t2 = Tuple.of(1, "one"); 40 System.out.println(t2); 41 System.out.println(t2._1().get() + "," + t2._2().get()); 42 43 44 Tuple t3 = Tuple.of(1, "one", "一"); 45 System.out.println(t3); 46 System.out.println(t3._1().get() + "," + t3._2().get() + "," + t3._3().get()); 47 48 49 Tuple t4 = Tuple.of(1, "one", "一", "壹"); 50 System.out.println(t4); 51 System.out.println(t4._1().get() + "," + t4._2().get() + "," + t4._3().get() + "," + t4._4().get()); 52 53 Tuple t5 = Tuple.of(1, "one", "一", "壹", "yi"); 54 System.out.println(t5); 55 System.out.println(t5._1().get() + "," + t5._2().get() + "," + t5._3().get() + "," + t5._4().get() + "," + t5._5().get()); 56 } 57 58 }