1. Why would a class be sent as an argument in a method?
2. Why is the result of the call to the method, where Food class is used as argument, be assigned back to a Food object??
This has to do with how generics works in Java. If you have a function that returns a generic, you need to specify the class of the generic as a parameter.