final F first; private final S second; private final T thread; private Triplet(F first, S second, T thread) { this.first = first; this.second = second; this.thread = thread; } public static <F, S, T> Triplet<F, S, T> create(F first, S second, T thread) { return new Triplet<>(first, second, thread); } }