/* * package g5.m.def is the package to define (def) generic (g5) methods (m) * * We have 5 typical methods: * - standard: not generic, parameters is generic type parameter * - generic: one single method type parameter * - return generic type * - method parameter which is a parameterized type * - mix of all previous ones */ package g5.m.def; public class Single<T> { public void standard(T t) { } public <U> T generic(U u) { return null; } public Single<T> returnParamType() { return new Single<T>(); } public void paramTypesArgs(Single<T> gst) {} public <U> Single<T> complete(U u, Single<T> g) { if (u == null) { if (g == null) { return null; } return g; } else { return new Single<T>().returnParamType(); } } }