Even though all types produced from a given generic type share the same run-time type, they still have their own independent static fields. For example, suppose you were to add a static field� count, say� of type int to the LinkedList<> type definition to record the number of objects created. You�d then add a statement to the constructor to increment count each time it was called. Each type instance, such as LinkedList<String> or LinkedList<Point>, would have its own copy of count, so the static count member of the LinkedList<String> type would correctly reflect the number of times the LinkedList<String> constructor had been called.
"Know where to find the solution and how to use it - that's the secret of success."