JSF + Scala Integration


Scala is a popular programming language for the Java Virtual Machine (JVM). Like Java, it is strongly typed and object-oriented, but it also supports functional programming. Many developers are attracted to Scala because it requires less boilerplate for common constructs, such as properties. Scala does support calling a code in the Java Library from it, so it’s possible to integrate […]

Playing with reduceLeft, reduceRight, foldLeft, foldRight API in Scala


In our previous post we saw in detail about the foreach. map, flatMap and collect methods in the Iterable trait. In this post we will look into detail about reduceLeft, reduceRight, foldLeft, foldRight methods of the Iterable trait. These methods are almost similar in the way the operate on the collection so it should be […]

Playing with Collections API in Scala


While I was going through the Scala collections API, I found the mere reading through the method and its functionality is not going to help. And I also realised that it will be useful if I can document them. And with that idea, I will try to document the APIs which I have tried. Please […]

Functions as First Class Citizens in Scala


In Java (Java 7 and before) we can store an object reference in a variable or some primitive value in which case Classes and Primitive types are the first class citizens there, but in Scala we can assign method/function definitions to variables, we can pass around function definitions to other functions and we can even […]

Using Apply and Unapply Methods in Scala


Before we proceed to learn about Apply and Unapply methods, its good to know what a companion object is. A companion object in Scala for some class say Fraction is defined as: One can provide apply(args) and unapply(args) methods in the companion objects which can be used implemented to some special operations in Scala. Suppose […]

Traits in Scala- Advanced concepts


In our previous article we covered very basic concepts on traits. In this article we will expand on our initial work and explore the inherent power of traits. As we said here just like the Interfaces traits can have abstract methods. Also traits can extend other traits just like Interfaces can extend other interfaces. also […]

Traits in Scala


Java doesn’t allow multiple inheritance for the fear of Deadly Diamond of Death. And to circumvent this Java introduced interfaces where in a class can extend only one other class, but implement multiple interfaces. These interfaces don’t contain any implementations. (This is going to change with Defender Methods in Java 8). Lot of other languages […]

Inheritance and Overriding in Scala


Inheritance in Scala is quite similar to the way it is in Java. The overriding aspects are a bit more detailed because in Scala there are not just methods to override but also vals, vars. There are a few restrictions added in Scala like: Overriding classes must use the “override” modifier. In Java one can […]

Primary and Auxiliary Constructors in Scala


Constructors in Scala are a bit different than in Java. Scala has 2 types of constructors: Primary Constructor Auxiliary Constructor also read: Primary and Auxiliary Constructors in Scala Traits in Scala Java HelloWorld vs Scala HelloWorld Primary Constructor In Java we have a no-args default constructor which is provided for every class which doesn’t provide […]

Package Objects in Scala


Package Objects in Scala was introduced as part of Scala 2.8. With this feature a package in scala can contain field declarations, methods along with the classes, objects and traits. The methods and variable declarations are put into the package object and are accessible in the package for which the package object was declared. also […]