SlideShare a Scribd company logo
1 of 16
Generics in Java 5 Better Code in Fewer Keystrokes Jeslie Chermak ( [email_address] )
What is a “generic”? ,[object Object],[object Object]
Why Should I Use It? ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
Simple Class ,[object Object],[object Object],[object Object],[object Object]
Java 1.4 Implementation ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
WIBNIF ,[object Object],[object Object]
Java 5 Implementation ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
WIBNIF ,[object Object],[object Object]
Improved   Implementation ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
Good News ,[object Object],[object Object],[object Object]
Bad News ,[object Object],[object Object],[object Object],[object Object],[object Object]
Wildcard types ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
Bounded Wildcard types ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
Generic methods ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
Erasures ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
Some minor details … ,[object Object],[object Object],[object Object],[object Object],[object Object]

More Related Content

What's hot

Templates exception handling
Templates exception handlingTemplates exception handling
Templates exception handlingsanya6900
 
Java New Programming Features
Java New Programming FeaturesJava New Programming Features
Java New Programming Featurestarun308
 
Javase5generics
Javase5genericsJavase5generics
Javase5genericsimypraz
 
Java 8 Lambda Built-in Functional Interfaces
Java 8 Lambda Built-in Functional InterfacesJava 8 Lambda Built-in Functional Interfaces
Java 8 Lambda Built-in Functional InterfacesGanesh Samarthyam
 
Core java by a introduction sandesh sharma
Core java by a introduction sandesh sharmaCore java by a introduction sandesh sharma
Core java by a introduction sandesh sharmaSandesh Sharma
 
Java Simple Programs
Java Simple ProgramsJava Simple Programs
Java Simple ProgramsUpender Upr
 
javasebeyondbasics
javasebeyondbasicsjavasebeyondbasics
javasebeyondbasicswebuploader
 
Basic Javascript
Basic JavascriptBasic Javascript
Basic JavascriptBunlong Van
 
Introduction to Intermediate Java
Introduction to Intermediate JavaIntroduction to Intermediate Java
Introduction to Intermediate JavaPhilip Johnson
 
Type Classes in Scala and Haskell
Type Classes in Scala and HaskellType Classes in Scala and Haskell
Type Classes in Scala and HaskellHermann Hueck
 
Java best practices
Java best practicesJava best practices
Java best practicesRay Toal
 
Generics in .NET, C++ and Java
Generics in .NET, C++ and JavaGenerics in .NET, C++ and Java
Generics in .NET, C++ and JavaSasha Goldshtein
 
Java fundamentals
Java fundamentalsJava fundamentals
Java fundamentalsHCMUTE
 
Javaz. Functional design in Java 8.
Javaz. Functional design in Java 8.Javaz. Functional design in Java 8.
Javaz. Functional design in Java 8.Vadim Dubs
 

What's hot (20)

Generic Programming
Generic ProgrammingGeneric Programming
Generic Programming
 
Java Generics - by Example
Java Generics - by ExampleJava Generics - by Example
Java Generics - by Example
 
Templates exception handling
Templates exception handlingTemplates exception handling
Templates exception handling
 
Java New Programming Features
Java New Programming FeaturesJava New Programming Features
Java New Programming Features
 
Javase5generics
Javase5genericsJavase5generics
Javase5generics
 
Java 8 Lambda Built-in Functional Interfaces
Java 8 Lambda Built-in Functional InterfacesJava 8 Lambda Built-in Functional Interfaces
Java 8 Lambda Built-in Functional Interfaces
 
Generics collections
Generics collectionsGenerics collections
Generics collections
 
Core java by a introduction sandesh sharma
Core java by a introduction sandesh sharmaCore java by a introduction sandesh sharma
Core java by a introduction sandesh sharma
 
Java Simple Programs
Java Simple ProgramsJava Simple Programs
Java Simple Programs
 
javasebeyondbasics
javasebeyondbasicsjavasebeyondbasics
javasebeyondbasics
 
Basic Javascript
Basic JavascriptBasic Javascript
Basic Javascript
 
Introduction to Intermediate Java
Introduction to Intermediate JavaIntroduction to Intermediate Java
Introduction to Intermediate Java
 
Type Classes in Scala and Haskell
Type Classes in Scala and HaskellType Classes in Scala and Haskell
Type Classes in Scala and Haskell
 
Java best practices
Java best practicesJava best practices
Java best practices
 
Generics in .NET, C++ and Java
Generics in .NET, C++ and JavaGenerics in .NET, C++ and Java
Generics in .NET, C++ and Java
 
Java fundamentals
Java fundamentalsJava fundamentals
Java fundamentals
 
Javaz. Functional design in Java 8.
Javaz. Functional design in Java 8.Javaz. Functional design in Java 8.
Javaz. Functional design in Java 8.
 
Scala test
Scala testScala test
Scala test
 
C# Generics
C# GenericsC# Generics
C# Generics
 
Java 8 Lambda Expressions
Java 8 Lambda ExpressionsJava 8 Lambda Expressions
Java 8 Lambda Expressions
 

Viewers also liked (20)

Java Generics: a deep dive
Java Generics: a deep diveJava Generics: a deep dive
Java Generics: a deep dive
 
Java Generics - by Example
Java Generics - by ExampleJava Generics - by Example
Java Generics - by Example
 
Java AWT
Java AWTJava AWT
Java AWT
 
java Jdbc
java Jdbc java Jdbc
java Jdbc
 
Exception handling in Java
Exception handling in JavaException handling in Java
Exception handling in Java
 
Introduction to class in java
Introduction to class in javaIntroduction to class in java
Introduction to class in java
 
Exception handling in java
Exception handling in javaException handling in java
Exception handling in java
 
Java awt
Java awtJava awt
Java awt
 
Java Swing
Java SwingJava Swing
Java Swing
 
Swing and AWT in java
Swing and AWT in javaSwing and AWT in java
Swing and AWT in java
 
java swing tutorial for beginners(java programming tutorials)
java swing tutorial for beginners(java programming tutorials)java swing tutorial for beginners(java programming tutorials)
java swing tutorial for beginners(java programming tutorials)
 
java swing
java swingjava swing
java swing
 
JDBC – Java Database Connectivity
JDBC – Java Database ConnectivityJDBC – Java Database Connectivity
JDBC – Java Database Connectivity
 
Inheritance in JAVA PPT
Inheritance  in JAVA PPTInheritance  in JAVA PPT
Inheritance in JAVA PPT
 
Java Exception handling
Java Exception handlingJava Exception handling
Java Exception handling
 
Inheritance
InheritanceInheritance
Inheritance
 
JDBC: java DataBase connectivity
JDBC: java DataBase connectivityJDBC: java DataBase connectivity
JDBC: java DataBase connectivity
 
Java basic
Java basicJava basic
Java basic
 
Jdbc Ppt
Jdbc PptJdbc Ppt
Jdbc Ppt
 
Awt
AwtAwt
Awt
 

Similar to Java Generics

New features and enhancement
New features and enhancementNew features and enhancement
New features and enhancementRakesh Madugula
 
Java Programs
Java ProgramsJava Programs
Java Programsvvpadhu
 
Object Oriented Solved Practice Programs C++ Exams
Object Oriented Solved Practice Programs C++ ExamsObject Oriented Solved Practice Programs C++ Exams
Object Oriented Solved Practice Programs C++ ExamsMuhammadTalha436
 
Stack Implementation
Stack ImplementationStack Implementation
Stack ImplementationZidny Nafan
 
Java Serialization
Java SerializationJava Serialization
Java Serializationjeslie
 
Lec 5 13_aug [compatibility mode]
Lec 5 13_aug [compatibility mode]Lec 5 13_aug [compatibility mode]
Lec 5 13_aug [compatibility mode]Palak Sanghani
 
Jdk1.5 Features
Jdk1.5 FeaturesJdk1.5 Features
Jdk1.5 Featuresindia_mani
 
Rooms and MoreCan you please help me the JAVA programLabInherit.pdf
Rooms and MoreCan you please help me the JAVA programLabInherit.pdfRooms and MoreCan you please help me the JAVA programLabInherit.pdf
Rooms and MoreCan you please help me the JAVA programLabInherit.pdfmumnesh
 
Generic Types in Java (for ArtClub @ArtBrains Software)
Generic Types in Java (for ArtClub @ArtBrains Software)Generic Types in Java (for ArtClub @ArtBrains Software)
Generic Types in Java (for ArtClub @ArtBrains Software)Andrew Petryk
 
computer notes - Data Structures - 8
computer notes - Data Structures - 8computer notes - Data Structures - 8
computer notes - Data Structures - 8ecomputernotes
 
Creat Shape classes from scratch DETAILS You will create 3 shape cla.pdf
Creat Shape classes from scratch DETAILS You will create 3 shape cla.pdfCreat Shape classes from scratch DETAILS You will create 3 shape cla.pdf
Creat Shape classes from scratch DETAILS You will create 3 shape cla.pdfaromanets
 
Lecture 5 Inheritance
Lecture 5 InheritanceLecture 5 Inheritance
Lecture 5 Inheritancebunnykhan
 

Similar to Java Generics (20)

New features and enhancement
New features and enhancementNew features and enhancement
New features and enhancement
 
Java Programs
Java ProgramsJava Programs
Java Programs
 
Object Oriented Solved Practice Programs C++ Exams
Object Oriented Solved Practice Programs C++ ExamsObject Oriented Solved Practice Programs C++ Exams
Object Oriented Solved Practice Programs C++ Exams
 
Lec2
Lec2Lec2
Lec2
 
Stack Implementation
Stack ImplementationStack Implementation
Stack Implementation
 
Java Serialization
Java SerializationJava Serialization
Java Serialization
 
3 j unit
3 j unit3 j unit
3 j unit
 
Java 5 Features
Java 5 FeaturesJava 5 Features
Java 5 Features
 
Lec 5 13_aug [compatibility mode]
Lec 5 13_aug [compatibility mode]Lec 5 13_aug [compatibility mode]
Lec 5 13_aug [compatibility mode]
 
Jdk1.5 Features
Jdk1.5 FeaturesJdk1.5 Features
Jdk1.5 Features
 
Rooms and MoreCan you please help me the JAVA programLabInherit.pdf
Rooms and MoreCan you please help me the JAVA programLabInherit.pdfRooms and MoreCan you please help me the JAVA programLabInherit.pdf
Rooms and MoreCan you please help me the JAVA programLabInherit.pdf
 
Collections
CollectionsCollections
Collections
 
Generic Types in Java (for ArtClub @ArtBrains Software)
Generic Types in Java (for ArtClub @ArtBrains Software)Generic Types in Java (for ArtClub @ArtBrains Software)
Generic Types in Java (for ArtClub @ArtBrains Software)
 
Lezione03
Lezione03Lezione03
Lezione03
 
Lezione03
Lezione03Lezione03
Lezione03
 
Thread
ThreadThread
Thread
 
computer notes - Data Structures - 8
computer notes - Data Structures - 8computer notes - Data Structures - 8
computer notes - Data Structures - 8
 
Creat Shape classes from scratch DETAILS You will create 3 shape cla.pdf
Creat Shape classes from scratch DETAILS You will create 3 shape cla.pdfCreat Shape classes from scratch DETAILS You will create 3 shape cla.pdf
Creat Shape classes from scratch DETAILS You will create 3 shape cla.pdf
 
Lecture 5 Inheritance
Lecture 5 InheritanceLecture 5 Inheritance
Lecture 5 Inheritance
 
Java programs
Java programsJava programs
Java programs
 

Java Generics

  • 1. Generics in Java 5 Better Code in Fewer Keystrokes Jeslie Chermak ( [email_address] )
  • 2.
  • 3.
  • 4.
  • 5.
  • 6.
  • 7.
  • 8.
  • 9.
  • 10.
  • 11.
  • 12.
  • 13.
  • 14.
  • 15.
  • 16.

Editor's Notes

  1. GOOD AFTERNOON MY NAME IS … BEFORE WE START … ANYONE WITH C++ KNOWLEDGE? ANYONE THINK TYPED LANGUAGES ARE GOOD?
  2. WHY CHANGE? I’M PRODUCTIVE AND COMFORTABLE AS IS.
  3. WE’RE GOING TO MAKE A SIMPLE CLASS TO ILLUSTRATE SOME OF THE POWER AND NOTATION OF GENERICS.
  4. WE START WITH A PRE-JAVA 5 VERSION. WE’LL USE JAVA 1.4 NOTE THAT OUR EXAMPLE LACKS JAVADOC COMMENTS. DON’T DO THIS IN ANY OF YOUR OWN CODE!
  5. OUR CODE IS SOMEWHAT TYPE AMBIGUOUS, ESPECIALLY FOR THE COLLECTIONS
  6. WE’LL REWIRTE OUR EXAMPLE FOR JAVA 5 USING THE GENERICS BUILT INTO THE REVISED JAVA.UTIL.* PACKAGES
  7. OKAY, WE GOT RID OF THE TYPE AMBIGUITY IN THE COLLECTIONS. BUT WE NEED TO REWRITE THIS FOR EVERY NEW KIND OF STACK WE NEED! C++ SOLUTION IS TEMPLATES. JAVA SOLUTION IS GENERICS AGAIN.
  8. NOTE COMPILER WOULD IMMEDIATELY CATCH THE “int” WE OVERLOOKED IN OUR PRIOR IMPLEMENTATION (AND AUTO-UNBOX IT)
  9. THAT SECOND PIECE OF BAD NEWS IS REALLY BAD. WATCH WHAT HAPPENS WHEN WE CONVERT A SIMPLE “PRINT ALL ELEMENTS IN A COLLECTION” TO USE GENERICS
  10. WHAT IF WE DON’T WANT THE ULTIMATE BASE TYPE (Object)? WHAT IF WE NEED SOME HIGHER TYPE? AN UPPER BOUND AS WE CLIMB THE HIERARCHY OF OBJECT INHERITANCE, SO TO SPEAK?
  11. WHAT IF WE DON’T WANT THE ULTIMATE BASE TYPE (Object)? WHAT IF WE NEED SOME HIGHER TYPE? AN UPPER BOUND AS WE CLIMB THE HIERARCHY OF OBJECT INHERITANCE, SO TO SPEAK?
  12. WHAT IF WE DON’T WANT THE ULTIMATE BASE TYPE (Object)? WHAT IF WE NEED SOME HIGHER TYPE? AN UPPER BOUND AS WE CLIMB THE HIERARCHY OF OBJECT INHERITANCE, SO TO SPEAK?
  13. THIS WAS JUST AN INTRODUCTION. THERE ARE SOME VERY USEFUL TOPICS WE HAVE NOT EVEN TOUCHED ON.