Posts

Java 8 - Type Inference

Image
Java 8 – Type Inference Type inference was first introduced in JDK 7 and later improved in JDK 8. It is a feature of Java which provides ability to compiler to look at each method invocation and corresponding declaration to determine the type of argument(s). The inference algorithm checks the types of the arguments and,if available, assigned type is returned. It tries to find a specific type which can full fill all type parameters. Till Java 6, We have to declare an Arraylist by mentioning its type explicitly at both side.             List<Integer> numbers = new ArrayList<Integer>(); and if we keep the type as blank at right side then Compiler generates unchecked conversion.             List<Integer> numbers = new ArrayList<>(); With JDK 7, It got improved and we started mentioning the type of arraylist only at one side. Below we can left second side as blank diamond and compil...

Introduction to RESTful API Modeling Language (RAML)

Introduction to RESTful API Modeling Language (RAML) 1. Overview RAML is a YAML based language which is built on YAML1.2 and JSON for describing RESTful APIs. It provides all the information necessary to describe Restful API. It focuses on cleanly describing resources, methods, parameters, responses, media types, and other HTTP constructs that form the basis for modern APIs that obey many, though perhaps not all, Restful constraints. 2. Requirement Before jumping to RAML. Let’s assume we have to create one web application which is exposing CRUD Operations and couple of query parameters to access USER resources: · POST /api/v1/users · GET /api/v1/users · GET /api/v1/users?username={username} · GET /api/v1/users/{userId} · PUT /api/v1/users/userId{} · DELETE /api/v1/users/{userId} All the API’s are secured via Basic Authentication and all the communication will be done over HTTPS and all the request response will be in JSON format. 3. Implementation ...

Private method in Java 9

Image
As we know till Java 7, we are not allowed to add any concrete function to the Interface, All the function should be abstract and must be implemented in Child class which is implementing the interface. i.e. an interface can only have Constant variable abstract method With Java 8, we can add static and default method as well in an Interface. Check my blog on Java 8 for more details. So, an Interface now can have Constant Variable Abstract Method Default Method Static Method and with Java 9, It become more powerful and now we can add private method and private static method. but why do we need private function in an Interface. Let’s understand this with an example. In above example, we can observe that all the default function has same code to create database connection (duplicate code) and fetching the data and database details is also exposed to outside the world. So over here, Private method will come to rescue. Che...