Past exam of the mathematics course of the University of Cambridge 2006 ia Paper 5 9 c Solution Created 2026-09-24 Updated 2026-10-14
A collections library can supply a genuinely generic method in Java whose own type parameter connects the input element and the result element type:For example,
java
static <T> java.util.List<T> oneElement(T item) {
java.util.List<T> result = new java.util.ArrayList<T>();
result.add(item);
return result;
}List<String> xs = oneElement("sample"); is type-checked without a cast. The method can also construct a List<Integer> from an integer object. The standard library's Collections.singletonList is another example of this type relationship, though its returned list is unmodifiable.The benefit is one reusable implementation with compile-time argument/result consistency. A raw
List result would lose element-type information, invite unchecked calls and require casts that may fail later. Separate methods for every element type would duplicate code. Merely enclosing a concrete type in angle brackets, such as returning List<String>, does not make a method generic; the method here declares <T>. Type erasure means the guarantee is primarily a source-level type check, not a distinct runtime class for each type argument.