Home  >  Article  >  Java  >  Why does Java use scope (generic) types?

Why does Java use scope (generic) types?

little bottle
little bottleOriginal
2019-05-29 11:53:083451browse

What are generics? Generics refer to the ability to parameterize types. You can define a class or method with a generic type, and then the compiler will replace it with a concrete type.

Why does Java use scope (generic) types?

Advantages of using generics

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.

Some rules and restrictions on using generics

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 . Customarily become "bounded types".

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!

Statement:
The content of this article is voluntarily contributed by netizens, and the copyright belongs to the original author. This site does not assume corresponding legal responsibility. If you find any content suspected of plagiarism or infringement, please contact admin@php.cn