Since Java 10 you can use `var` to let the compiler infer a local variable’s type:
`var users = new ArrayList<User>()`
And that’s pretty much it, right? Surprisingly, no! There are a lot of details to consider…
* how exactly is the type inferred?
* where can I use `var` and what should I look out for?
* won’t this lead to unreadable code?
… and a few fun things to do with `var`…
* playing with anonymous classes (don’t!)
* faking traits (don’t!)
* faking intersection types (do!)
After this live-coding deep dive into `var`, you’ll know all about Java 10’s flagship feature.