Angelika Langer - Training & Consulting
HOME | COURSES | TALKS | ARTICLES | GENERICS | LAMBDAS | IOSTREAMS | ABOUT | CONTACT | Twitter | Lanyrd | Linkedin
Books  
HOME 

GENERICS
  FAQ    
    CONTENT
    FUNDAMENTALS
    FEATURES
    PRACTICAL
    TECHNICAL
    INFORMATION
    GLOSSARY
    INDEX
    PDF VERSION
 
LAMBDAS 
IOSTREAMS 
ABOUT 
CONTACT 
Java Generics FAQs - Index

This is a collection of answers to frequently asked questions (FAQs) about Java Generics, a new language feature added to the Java programming language in version 5.0 of the Java Standard Edition (J2SE 5.0).

If you want to provide feedback or have any questions regarding Java generics, to which you cannot find an answer in this document, feel free to send me EMAIL or use the GENERICS FAQ form.
A printable version of the FAQ documents is available in PDF format (4.5MB).

Java Generics FAQs - Index

Index

© Copyright  2004-2022 by Angelika Langer.  All Rights Reserved.

A B C D E F G H I J K L M N O P Q R S T U V W X Y Z

A

actual type:
    in reflection, see reflective actual type

annotation:
    Override , see Override annotation
    SuppressWarnings , see SuppressWarnings annotation

array:
    component type, see array component type
    generic creation of
    reference variable, see array reference variable

array reference variable:
     to array of concrete parameterized type
     to array of bounded wildcard parameterized type
     to array of unbounded wildcard parameterized type

array component type:
    concrete parameterized type
    wildcard parameterized type
    type parameter/variable
    unbounded wildcard parameterized type

B

bound:
    lower, see lower bound
    of type parameter, see type parameter bounds
    of wildcard, see wildcard bound
    upper, see upper bound

bounded:
    type parameter
    wildcard

bridge method:
    performance penalty, see performance
    purpose
    what is a ...?

C

cast:
    compiler-generated
    performance penalty, see performance
    target type
    to parameterized type
    to type parameter

checked collection

Class :
    type parameter

circular generic type, see self-referential generic type

class literal:
    of parameterized type
    of wildcard parameterized type
    of type parameter / variable
    what is a ...?

clone :
    of generic type

code sharing, see compilation

code specialization, see compilation

collection:
    Collection<Object>
    Collection<?>
    checked
    generic, see generic collection
    mixed, see collection of objects of different types
   of objects of different types
    parameterized, see parameterized collection

compatibility:
    binary

compilation of generics:
    how does the compiler translate generics

compiler-generated:
    bridge method, see bridge method
    cast

concrete:
   instantiation, see concrete parameterized type
   parameterized type, see concrete parameterized type

concrete parameterized type:
    array of
    class literal
    compatibility
    of generic type
    use of
    vs. unbounded wildcard instantiation
    vs. wildcard instantiation
    what is a ...?

covariant return type:
    and overriding
    what is a ...?

D

declared type:
    in reflection, see reflective declared type

derivation:
    from wildcard parameterized type
    from type parameter

descriptor:
    vs. signature

diamond operator:
    what is the ...?

dynamic type:
    in reflection, see reflective actual type

E

enum type:
    decryption of Enum<E extends Enum<E>>
    nested into generic type, see nested enum type
    generic

equals :
    of generic type

erasure, see type erasure

exception handling:
    parameterized types

explicit type argument specification

extends keyword:
    meaning of
    see also upper bound

F

features:
   see language features

G

generic:
    array, see java.lang.reflect.GenericArrayType
    code, see generic code
    collection, see generic collection
    exceptions
    interface, see generic interface
    method, see generic method
    type, see generic type

GenericArrayType , see java.lang.reflect.GenericArrayType

generic code:
    mix with legacy code

generic collection:
    vs. non-generic collection

generic interface:
    as bound of a type parameter
    implementing different instantiations
    in class hierarchy
    name collision

generic method:
    explicit type argument specification
    definition
    invocation
    reflection, see reflective generic method
    type argument inference
    vs. regular method
    what is a ...?

generic type:
    as type parameter bound
    cast to
    definition
    enum type
    exception handling
    instantiation
    nested interface
    reflection, see reflective generic type
    runtime type of
    static member, see static member of generic type
    super-subtype relationship
    type system
    vs. raw type
    vs. regular type
    what is a ...?

generics, see Java generics

generification:
    of legacy classes

getThis trick

H

heap pollution

I

import:
    generic type
    parameterized type

improved type inference, see type argument inference

inference, see type argument inference

instanceof :
    target type

instantiation:
    concrete instantiation
    of generic method
    of  generic type
    super-subtype relationship
    type relationship among i nstantiations of different generic types
    type relationship to lower bound wildcard instantiation
    type relationship to raw type
    type relationship to unbounded wildcard instantiation
    type relationship to upper bound wildcard instantiation
    wildcard instantiation
    vs. raw type

interface:
    nested into generic type, see nested interface
    generic, see generic interface

J

Java generics:
    benefit
    purpose
    translation by type erasure
    what are ...?

java.lang.reflect.GenericArrayType
    see also:  JavaDoc

java.lang.reflect.ParameterizedType
    see also:  JavaDoc

java.lang.reflect.Type
    subtypes
    see also:  JavaDoc

java.lang.reflect.TypeVariable
    see also:  JavaDoc

java.lang.reflect.WildcardType
    see also:  JavaDoc

K

L

language features:
    bridge method
    concrete instantiation
    explicit type argument specification
    instantiation of generic method
    instantiation of generic type
    overview
    generic method
    generic type
    parameterized type
    raw type
    type argument
    type argument inference
    type erasure
    type parameter
    type parameter bound
    wildcard
    wildcard bound
    wildcard capture
    wildcard instantiation

legacy code:
generify
    mix with generic code
    re-engineer, see generify

lower bound:
    what is a ...?
    on wildcard
    wildcard instantiation, see lower bound wildcard instantiation
    on type parameter
    difference on wildcard and on type parameter

lower bound wildcard instantiation:
    type relationship to other instantiations of the same type

M

method:
    bridge, see bridge method
    descriptor, see  descriptor
    generic, see generic  method
    parameterized, see generic  method
    signature, see signature
    synthetic, see bridge method
    with wildcard return type
    with wildcard argument type
    with multi-level wildcard argument type
    with varargs, see variable argument list

multi-level wildcard:
    as argument type of a method
    what is a ...?

N

nested enum type (with parameterized enclosing type):
    scope name

nested interface (with parameterized enclosing type):
    scope name
    access to enclosing type parameters

nested wildcard, see multi-level wildcard

non-reifiable type:
    and arrays
    and varargs
    vs. reifiable type

O

object:
    generic creation
    of concrete parameterized type
    of wildcard parameterized type
    of type parameter/variable
    of unbounded wildcard parameterized type

overloading:
    problems with
    what is ...?

overload resolution:
    and type variables
    what is ...?

Override annotation

override-equivalent signature:
    and overloading
    and overriding
    vs. subsignature
    what is an ...?

overriding:
    generic sub-method + generic super-method
    generic sub-method - non-generic super-method
    generic subtype + generic supertype
    non-generic sub-method + generic super-method
    non-generic subtype + generic supertype
    problems with
    what is ...?

P

parameterized:
    collection, see parameterized collection
    interface, see parameterized interface
    method, see generic method
    type, see parameterized type

parameterized collection
    vs. non-parameterized collection

parameterized interface:
    as bound of a type parameter
    implementing different instantiations
    in class hierarchy
    name collision

ParameterizedType, see java.lang.reflect.ParameterizedType

parameterized type:
    as type parameter bound
    cast to
    definition
    enum type
    exception handling
    instantiation
    nested interface
    reflection, see reflective parameterized type
    runtime type of
    static member, see static member of parameterized type
    super-subtype relationship
    type system
    vs. raw type
    vs. regular type
    what is a ...?

performance

polluted heap:
    see heap pollution

polymorphic method dispatch:
    and overriding

primitive types:
    as type arguments

Q

R

raw type:
    purpose
    type relationship to instantiation
    use of
    vs. parameterized type
    vs. unbounded wildcard instantiation
    what is a ...?

recursive
    bound, see self-referential generic type
    generic type, see self-referential generic type
    type parameter, see self-referential generic type

reifiable type:
    vs. non-reifiable type
    what is a ...?

reification

reflection:
    and generics

reflective ...
actual type
declared type
    dynamic type, see reflective actual type
    generic method, see reflective generic method
    generic type, see reflective generic type
    parameterized type, see reflective parameterized type
    static type, see reflective declared type
    type parameter, see reflective type parameter
    wildcard type, see reflective wildcard type

reflective generic method

reflective generic type
    difference from reflective parameterized type

reflective parameterized type
    difference from reflective generic type

reflective type parameter

reflective wildcard type

return type:
    covariant, see covariant return type
    substitutable, see substitutable return type

runtime type:
    class literal
    information
    of parameterized type

S

safety, see type safety

self-referential generic type

signature:
    and overloading
    and overriding
    override-equivalent, see override-equivalent signature
    subsignature, see subsignature
    what is a ...?

static:
    member, see static member of generic type
    type, see static type in reflection

static type:
    in reflection, see reflective declared type

static member of generic type:
    how many instances?
    name of
    type parameter as type of

subsignature:
    and overloading
    and overriding
    vs. override-equivalent signature
    what is ...?

substitutable return type:
    vs. covariant return type
    and overriding
    what is a ...?

super keyword:
    see lower bound

super-subset:
    relationship among type families denoted by wildcards

super-subtype:
    relationship among instantiations of generic types

SuppressWarnings annotation

T

throws clause:
    and overriding, see conflicting
    and type parameter
conflicting

Type , see java.lang.reflect.Type

type:
    argument, see type argument
    check, see type check
    generic, see generic  type
    parameter, see type parameter
    parameterized, see parameterized type
    raw type
    reifiable, see reifiable type
    runtime type

type argument:
    and type parameter bounds
    explicit type argument specification
    inference, see type argument inference
    of generic method
    of parameterized type
    permitted types
    primitive types
    type parameters
    what is a ...?
    wildcards

type check:
   in checked collection, see checked collection
   in equals method, see equals
   implicitly generated
   leading to unchecked warning
   target type is a parameterized type
   target type is a type parameter:
        performed at compile time
        performed at runtime time
  see also, cast

type argument inference:
    explicit type argument specification
    for generic methods
    for instance creation
    from context
    what is ...?
    see also, diamond operator
 

type erasure:
    bridge method, see bridge method
    compiler-generated cast
    of generic method
    of parameterized type
    of type parameter
    reifiable type, see reifiable type
    several bounds
    what is ...?

type parameter:
    array of
    as bound of another type parameter
    as part of its own bounds
    as supertype
    as target type of runtime type check
    as type argument
    bounded
    bounds, see type parameter bounds
    cast to
    class literal
    derive from
    in catch clause
    in exception handling
    in throw statement
    in throws clause
    object of
    of an outer type
    reflection, see reflective type parameter
    scope of
    static context
    type-like use
    use of
    what is ...?

type parameter bound
    access to members
    and type arguments
    different instantiations of a same generic type
    extends clause
    permitted types
    vs. type wildcard bound
    what is a ...?

type relationship:
    inheritance
    super-subtype
    see also type relationship among ...

type relationship among:
    raw type and parameterized type
    i nstantiations of different generic types
    lower bound wildcard instantiations and other instantiations of the same generic type
    instantiations of generic type (in general)
    unbounded wildcard instantiations and other instantiations of the same generic type
    upper bound wildcard instantiations and other instantiations of the same generic type

type-safety

type system, see type relationship

type token:
    for generic creation of objects and arrays
    for dynamic retrieval of type arguments

TypeVariable , see java.lang.reflect.TypeVariable

type variable, see type parameter

typing:
    strong
    weak

U

unbounded:
    wildcard
    wildcard instantiation, see unbounded wildcard instantiation

unbounded wildcard instantiation:
    array of
    type relationship to other instantiations of the same generic type
    vs. bounded wildcard instantiation
    vs. concrete wildcard instantiation
    vs. raw type
    what is an ...?

unchecked warning:
    avoid
    disable
    eliminate
    enable
    spurious
    suppress
    what is an ...?

upper bound:
    wildcard
    wildcard instantiation, see upper bound wildcard instantiation
    what is an ...?

upper bound wildcard instantiation:
    type relationship to other instantiations of the same generic type

V

varargs, see variable argument list and varargs warning

varargs warning:
    suppress
    what is a ...?

variable argument list:
    and non-reifiable types

W

warning:
    unchecked, see unchecked warning

wildcard:
    as type argument
    bounded
    capture, see wildcard capture
    in method signatures
    instantiation, see wildcard parameterized type
    multi-level, see multi-level wildcard
    nested, see multi-level wildcard
    parameterized type, see wildcard parameterized type
    reflection, see reflective wildcard type
    super-subset relationship
    type, see wildcard parameterized type
    unbounded
    what is a ...?

wildcard bound:
    extends clause
    lower, see lower bound
    permitted types
    upper, see upper bound
    vs. type parameter bound
    what is a ...?

wildcard capture:
    assignment-compatibility
    of bounded wildcard
    what is a ...?

wildcard parameterized type:
    access to fields and methods
    array of
    as argument type of a method
    as return type of a method
    as supertype
    class literal
    derive from
    in method signatures
    in new expression
    object of
    unbounded, see unbounded wildcard instantiation
    use of
    vs. concrete instantiation
    vs. unbounded wildcard instantiation
    what is a ...?
    with lower bound

WildcardType , see java.lang.reflect.WildcardType

X

Xlint compiler option

Y

Z



CONTENT PREVIOUS
 
  © Copyright 1995-2022 by Angelika Langer.  All Rights Reserved.    URL: < http://www.AngelikaLanger.com/GenericsFAQ/FAQSections/Index.html  last update: 15 May 2018