https://docs.oracle.com/javase/tutorial/java/generics/inheritance.html
interface PayloadList<E,P> extends List<E> {
void setPayload(int index, P val);
}
class NewList implements PayloadList<Integer, String> {
//...implement interface methods..
}
// Polymorphism
List<Integer> pl = new NewList(); // is valid
List<String> pl = new NewList(); // is invalid