https://bigdatainsights.online/how-to-use-generics-in-your-java-programs/