blob: 99e1313a328c95c9b1ae7438a09460e480bb9f51 [file] [log] [blame]
/*
* 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: multiple method type parameters
* - return generic type with multiple type arguments
* - method parameter which is several parameterized types
* - mix of all previous ones
*/
package g5.m.def;
public class Multiple<T1, T2, T3> {
public void standard(T1 t1, T2 t2, T3 t3) {
}
public <U1, U2, U3> T1 generic(U1 u1, U2 u2, U3 u3) {
return null;
}
public Multiple<T1, T2, T3> returnParamType() {
return new Multiple<T1, T2, T3>();
}
public void paramTypesArgs(Single<T1> st1, Single<T2> st2, Single<T3> st3, Multiple<T1, T2, T3> gmt) {}
public <U1, U2 extends Exception, U3 extends RuntimeException> Multiple<T1, T2, T3> complete(U1 u1, U2 u2, U3 u3, Multiple<T1, T2, T3> g) {
if (u1 == null || u2==null || u3==null) {
if (g == null) {
return null;
}
return g;
} else {
return new Multiple<T1, T2, T3>().returnParamType();
}
}
}