The advantage of introducing generics into the Java language is safety and simplicity. The advantage of generics is that type safety is checked during compilation, and all casts are automatic and implicit, improving code reuse.
In detail:
1. Type safety.
The main goal of generics is to improve the type safety of Java programs. By knowing the type restrictions of variables defined using generics, the compiler can verify type assumptions to a much higher degree. Without generics, these assumptions exist only in the programmer's mind (or, if you're lucky, in code comments).
2, Eliminate forced type conversion.
A side benefit of generics is the elimination of many casts in the source code. This makes the code more readable and reduces the chance of errors.
3. Potential performance gains.
Generics bring the possibility of greater optimization. In the initial implementation of generics, the compiler inserts casts (without generics, the programmer would specify these casts) into the generated bytecode. But the fact that more type information is available to the compiler opens up the possibility of optimizations in future versions of the JVM. Because of the way generics are implemented, supporting generics requires (almost) no JVM or class file changes. All the work is done in the compiler, which generates code similar to what you would write without generics (and casts), only more type-safe.
1. The type parameters of generics can only be class types (including custom classes), not simple types.
2. The same generic type can correspond to multiple versions (because the parameter type is uncertain), and different versions of generic class instances are incompatible.
3. Generics can have multiple type parameters.
4. Generic parameter types can use the extends statement, such as
5. The parameter type of a generic type can also be a wildcard type. For example Class> classType = Class.forName(Java.lang.String);
The above is the detailed content of Why does Java use scope (generic) types?. For more information, please follow other related articles on the PHP Chinese website!