GeeCON Prague 2014*
The moose likes Features new in Java 8 and the fly likes Pattern Matching Big Moose Saloon
  Search | Java FAQ | Recent Topics | Flagged Topics | Hot Topics | Zero Replies
Register / Login


JavaRanch » Java Forums » Java » Features new in Java 8
Bookmark "Pattern Matching" Watch "Pattern Matching" New topic
Author

Pattern Matching

Will Myers
Ranch Hand

Joined: Aug 05, 2009
Posts: 326

Does Java 8 include pattern matching?
Ulf Dittmer
Marshal

Joined: Mar 22, 2005
Posts: 42031
    
  64
What do you mean, exactly? Java has long included an API for regular expressions, which can be used for pattern matching.


Ping & DNS - my free Android networking tools app
Tim Cooke
Bartender

Joined: Mar 28, 2008
Posts: 1048
    
  51

I think he means pattern matching as is common in functional languages. Scala for example:


Tim Driven Development
Jaikiran Pai
Marshal

Joined: Jul 20, 2005
Posts: 10142
    
165

Haven't used Scala. Out of curiosity, what is that code example meant to do? To me it looks like equivalent to a switch case in Java:


Although, I don't see how that relates to pattern matching.

[My Blog] [JavaRanch Journal]
Tim Cooke
Bartender

Joined: Mar 28, 2008
Posts: 1048
    
  51

It is equivalent to a switch statement in Java but a good deal more flexible. Your example was close but you didn't include the default option

The example looks a bit trivial when matching with String but it becomes more powerful when you start matching on more complex types such as a List:

Or some custom type:
Piet Souris
Ranch Hand

Joined: Mar 08, 2009
Posts: 588
    
  11
In the Scala course at Coursera I wrote the following code, to see if I got
everything correct:



Greetz,
Piet
Richard Reese
author
Ranch Hand

Joined: Jul 13, 2011
Posts: 84
    
    5

Will,

The first thing that came to my head was how lambda expressions are “matched” with a functional interface. While this is probably not exactly what you are asking about, it is an interesting and powerful feature of Java 8. Also, the PathMatcher interface came to mind. This was added in Java 1.7 but I do include an example of how it can be used with lambda expressions in the book.

Richard Reese
Java 8 New Features: A Practical Heads-Up Guide
 
GeeCON Prague 2014
 
subject: Pattern Matching