Northern Virginia Software Symposium

April 12 - 13, 2019

Grokking Generics

Saturday - Apr 13 2:45 PM - MEETING ROOM 5

Daniel Hinojosa

Daniel Hinojosa

Independent Consultant/Developer

For those still grappling with Generics? This will be an attempt to clear the air about generics. What are wildcards? What is extends? What is super? What is covariance? What is contravariance? What is invariance? What is erasure? Why and when do I need this?

One of the more pain items in any statically typed language on the JVM is generics or parameterized type. This presentation is set to overcome some of these hurdles and understand some of these terms that often vex us. We will cover:

  • Covariance
  • Contravariance
  • Invariance
  • Erasure
  • Generic Assignments
  • Weird Generic Funky Stuf
  • Use-Site vs Declaration-Site Variance
  • Differences Java vs. Scala vs. Kotlin

Video Preview

About Daniel Hinojosa

Daniel is a programmer, consultant, instructor, speaker, and recent author. With over 20 years of experience, he does work for private, educational, and government institutions. He is also currently a speaker for No Fluff Just Stuff tour. Daniel loves JVM languages like Java, Groovy, and Scala; but also dabbles with non JVM languages like Haskell, Ruby, Python, LISP, C, C++. He is an avid Pomodoro Technique Practitioner and makes every attempt to learn a new programming language every year. For downtime, he enjoys reading, swimming, Legos, football, and barbecuing.