0% found this document useful (0 votes)
31 views

Generics

Generics were introduced in Java 5 to allow classes, interfaces, and methods to work with various types in a type-safe manner. Generics abstract over types, allowing classes, interfaces, and methods to be parameterized by types. This increases readability and type safety. Generic methods can be called with arguments of different types based on the types passed. Generic classes declare type parameters similarly to generic methods and accept type parameters to make the class parameterized.

Uploaded by

Social point
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PPSX, PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
31 views

Generics

Generics were introduced in Java 5 to allow classes, interfaces, and methods to work with various types in a type-safe manner. Generics abstract over types, allowing classes, interfaces, and methods to be parameterized by types. This increases readability and type safety. Generic methods can be called with arguments of different types based on the types passed. Generic classes declare type parameters similarly to generic methods and accept type parameters to make the class parameterized.

Uploaded by

Social point
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PPSX, PDF, TXT or read online on Scribd
You are on page 1/ 7

Generics

Introduction
 J2SE 5 added many new feature to Java, the one of them
is generics.
 Through the use of generics, it is possible to create
classes, interfaces, and methods that will work in a type-
safe manner with various kind of data.
What Are Generics?
 Generics abstract over Types
 Classes, Interfaces and Methods can be Parameterized
by Types
 Generics provide increased readability and type safety
Generic Methods:
 You can write a single generic method declaration that can be called
with arguments of different types. Based on the types of the arguments
passed to the generic method, the compiler handles each method call
appropriately. Following are the rules to define Generic Methods:

1. All generic method declarations have a type parameter section


delimited by angle brackets (< and >) that precedes the method's
return type ( < E > in the next example).
2. Each type parameter section contains one or more type parameters
separated by commas. A type parameter, also known as a type
variable, is an identifier that specifies a generic type name.
3. The type parameters can be used to declare the return type and act
as placeholders for the types of the arguments passed to the generic
method, which are known as actual type arguments.
4. A generic method's body is declared like that of any other method.
Note that type parameters can represent only reference types not
primitive types (like int, double and char).
Bounded Type Parameters:
 There may be times when you'll want to restrict the
kinds of types that are allowed to be passed to a type
parameter.
 For example, a method that operates on numbers might
only want to accept instances of Number or its
subclasses. This is what bounded type parameters are
for.
 To declare a bounded type parameter, list the type
parameter's name, followed by the extends keyword,
followed by its upper bound.
Generic Classes:
 A generic class declaration looks like a non-generic class
declaration, except that the class name is followed by a
type parameter section.

 As with generic methods, the type parameter section of


a generic class can have one or more type parameters
separated by commas. These classes are known as
parameterized classes or parameterized types because
they accept one or more parameters.
The General Form of a Generic Class
 Here is the syntax for declaring a generic class :

class class-name<type-param-list>
{
// …
}

 Here is the syntax for declaring a reference to a generic


class:
class class-name <type-arg-list> var-name =
new class-name <type-arg-list> (cons-arg-list);

You might also like