Book Image

Learning Play! Framework 2

By : Andy Petrella
Book Image

Learning Play! Framework 2

By: Andy Petrella

Overview of this book

<p>The Learning Play! Framework 2 has been created for web developers that are building web applications. The core idea is to focus on the HTTP features and to enable them through a simplification lens. Building a web application no longer requires a configuration phase, an environment setup, or a long development lifecycle - it's integrated!<br /><br />Learning Play! Framework 2 will enable any web developers to create amazing web applications taking advantage of the coolest features. It's the fastest way to dive into Play!, focusing on the capabilities by using them in a sample application. Although essentially Java based code, a Scala version is presented as well – giving an opportunity to see some Scala in action.<br /><br />After setting up the machine and learning some Scala, you will construct an application which builds from static to dynamic, before introducing a database. <br /><br />Then we'll focus on how data can be consumed and rendered in several ways. This will enable some real time communication through WebSocket and Server-Sent Event – on both server and client sides.</p> <p>The book will end with testing and deployment, which completes any web development project.</p>
Table of Contents (20 chapters)
Learning Play! Framework 2
Credits
About the Author
Acknowledgement
About the Reviewers
www.packtpub.com
Preface
Materials
Index

Generic types


What Scala adds to Java is a stronger type system, including generics that can span several levels, which means that you can have a generic of generics, and so on.

We won't cover the Scala type system here as it would take the rest of the book to get the gist of it, but we'll take an overview of what is often needed in templates when declaring the arguments they can take.

The two major differences between the Java syntax and the Scala syntax are as follows:

  • Scala declares generics between square brackets ([...]) whereas Java does it between angle ones (<...>).

  • Java allows the declaration of a generic extending another type using the extends keyword (Juice[F extends Fruit]). Scala generics can be lower and upper bounded using operators >: and <:, so where Java generics are only able to declare upper bounds, Scala can declare lower constraints as well.

Note

In Scala, a type can follow the hierarchy of its generic. For example, a list of apples is also an instance of a...