import java.util.HashMap;
import java.util.List;
import java.util.Map;
public abstract class A<T extends A<T,
S>,
S extends List<?>> {
T t;
S s;
A<T,
S> a;
Object field = a.<T,
S>getMap(t, s);
public A() {
<T,
S>this(null, null);
}
public <M,
N> A(M param1, N param2) {
}
public <M,
N> Map<M,
N> getMap(M key, N value) {
return null;
}
}
class B extends A<B,
List<String>> {
public <M,
N> B(M param1, N param2) {
<M,
N>super(param1, param2);
}
public <M,
N> Map<M,
N> getMap(M key, N value) {
B b = new <M,
N>B(key, value);
AMethod method = b::<String,
String>getMap;
AMethod method2 = super::<String,
String>getMap;
AMethod method3 = AMap<M>::<String,
String>new;
AMethod method4 = AMap<M>::<String,
String>createAMap;
return super.<M,
N>getMap(key, value);
}
}
interface AMethod {
Map<String,
String> getMap(String key, String value);
}
class AMap<T> extends HashMap<String,
String> {
public <M,
N> AMap(String param1, String param2) {
}
public static <M,
N> AMap<M> createAMap(String param1, String param2) {
return new AMap<>(param1, param2);
}
}