If a type parameter appears only once in a method declaration, replace it with a wildcard.
For example, given a static method swapping 2 items in a list, prefer
1 | public static void swap(List<?> list, int i, int j); |
1 | public static <E> void swap(List<E> list, int i, int j); |
1 2 3 | public static void swap(List<?> list, int i, int j) { list.set(i, list.set(j, list.get(i))); } |
1 2 3 4 5 6 7 | public static void swap(List<?> list, int i, int j) { swapHelper(list, i, j); } // Private helper method for wildcard capture private static <E> void swapHelper(List<E> list, int i, int j) { list.set(i, list.set(j, list.get(i))); } |