class C { static <A,B> Pair<B,A> swap (Pair<A,B> p) { return new Pair<B,A>(p.second, p.first); } } Pair<String,Integer> p = new Pair<String,Integer>("foo", 42); Pair<Integer,String> q = C.<String,Integer>swap(p);Typargumente können auch inferiert werden:
Pair<Integer,String> q = C.swap(p);