Simple examples on Java 8's lambda expressions and interface evolution
Switch branches/tags
Nothing to show
Clone or download
Fetching latest commit…
Cannot retrieve the latest commit at this time.
Failed to load latest commit information.


This small project contains lambda expresions and interface evolution examples on What's New on JavaSE 8 presented by Chuk Lee during NUS Hackers meetup, 21 March 2014. Go here if you're interested to the talk summary.


  1. Java 8
  2. Maven 3.0.5

Use Maven to compile the sources, i.e. mvn clean compile.


There are several main classes:

  1. com.otnira.evolution.main.BasicMain: main class that only uses the original method of Awesome interface, which is sayHello. This class does not have any argument.
  2. c.o.e.m.InterfaceEvolutionMain: main class that uses the method from evolution of Awesome interface, which is eat. This class does not have any argument.
  3. c.o.lambda.main.GetMaxRandom: main class that randomly generates collection of students and finds the maximum of the grade for student in specific year using sequential and parallel stream. This class has two optional arguments:
  • year: year/batch that we are interested to find the maximum
  • number of students per year/batch: self-explained
  1. c.o.l.m.GetMaxNotRandom: main class that generates collection of students deterministically and finds the maximum grade of the specified batch. This class has one optional argument:
  • year: year/batch that we are interested to find the maximum
  1. c.o.l.m.TargetTyping: some examples on target-typing.
  2. c.o.l.m.StreamExample: an example of stream.
  3. c.o.l.m.ParallelStreamExample: an example of parallel stream.
  4. c.o.l.m.StaticMethodReference: an example of static-method-reference(::).

Use java to execute the main classes, example

java -CP $CLASSPATH com.otnira.evolution.main.BasicMain


The MIT License (MIT)

Copyright (c) 2014 Arinto Murdopo