Using an interface as a parameter

You can define methods that take an interface as a parameter. Your interface defines a contract and your methods will accept as parameter any objects whose class implements that interface. This is in fact one of the most common and useful ways to use an interface. interface Test { public void test(); //define the interface } class Tester { public void runTest(Test t) { t.test(); } // method with interface as param } MyTest class will implement this interface:...

April 20, 2017 · 1 min · Rezha Julio

Using bounded type parameters in generic methods

Sometimes it may be appropriate to write a generic method, however it will not be possible for it to accept every type while still maintaining all the necessary functionality. To solve this, use bounded type parameters to restrict generic methods from accepting arguments of a particular kind. public <T extends Shape> void drawAll(List<T> shapes){ for (Shape s: shapes) { s.draw(this); } } The above method is used to draw a list of shapes....

April 19, 2017 · 1 min · Rezha Julio

Using the Deprecated annotation

The @Deprecated annotation can be used to indicate elements which should no longer be used. Any program that uses an element which is marked as @Deprecated will produce a compiler warning. @Deprecated public void oldMethod() { ... } public void newMethod() { ... } In this examples, newMethod replaces oldMethod. However we do not want to remove oldMethod completely because keeping it will help maintain backwards compatibility with older versions of the program....

April 18, 2017 · 1 min · Rezha Julio

Diamond Operator in Java

Since Java 7 it’s not necessary to declare the type parameter twice while instantiating objects like Maps, Sets and Lists. Consider the following code: Map<String, List<String>> phoneBook = new HashMap<String, List<String>>(); The type parameter for HashMap in the right hand side of the expression seems redundant. This can be shortened using an empty “Diamond Operator” to give: Map<String, List<String>> phoneBook = new HashMap<>();

April 17, 2017 · 1 min · Rezha Julio

Lambda Functions in Python

The lambda keyword in Python provides a shortcut for declaring small anonymous functions. Lambda functions behave just like regular functions declared with the def keyword. They can be used whenever function objects are required. For example, this is how you’d define a simple lambda function carrying out an addition: >>> add = lambda x, y: x + y >>> add(5, 3) 8 You could declare the same add function with the def keyword:...

April 16, 2017 · 5 min · Rezha Julio