/* | |
* 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(); | |
} | |
} | |
} |