Generics
Classes that work with other classes in a generic way, like Vector, didn't have a way to explicitly tell the compiler that only one type was accepted. Because of that, it uses Object everywhere and runtime checks like instanceof and casting were necessary everywhere.
To solve this problem, Generic was introduced in Java 5. In this section you'll understand better the problem, the solution and how to use it.
What was the Problem?
When declaring an array, you tell the compiler what type of data goes inside the array. If you try to add something else in there, it won't compile. Look at the following code:
// This compiles and work User[] usersArray = new User[1]; usersArray[0] = user; // This wouldn't compile // usersArray[0] = "Not a user"; /* If you uncomment the last line and try to compile, you would get the following error: */ File.java:15: error: incompatible types: String cannot be converted to User usersArray[0] = "Not a user"; ^
Let's say you...