Monday, 6 August 2012

Real Time Example of Abstract Class And Interface In Java

I can provide two types of "real world" examples -- one from the business world and one from the true "real world."


Real World Example:


You have an Animal class. It is an abstract class, because you cannot instantiate a generic "Animal," but it provides base functionality.
You have many derived classes of Animal. You have HomoSapiens, Platypus, Penguin (which extends Bird, another subclass of Animal), Giraffe, Housefly, etc. Each of these are concrete classes that may be instantiated (of course, there are several levels of abstract classes between these and Animal (like Chordata, etc.)
Now you want to make something fly. What can fly? Birds and Houseflys (among others), so these classes should provide similar functionality, even though they are widely spaced on our inheritance tree. The solution? Make them use interfaces. Bird and Housefly can not both implement the Flyer interface, so whenever we want something to fly, we can use a Flyer object, not caring whether it's a Bird or a Housefly. Likewise, Penguins and Playtpuses can implement the Swimmer interface (and Penguin should throw an IllegalOperationException in any of its Flyer methods, since Penguins cannot fly).


Business Examples :

I have a persistance engine that will work against any data sourcer (XML, ASCII (delimited and fixed-length), various JDBC sources (Oracle, SQL, ODBC, etc.) I created a base, abstract class to provide common functionality in this persistance, but instantiate the appropriate "Port" (subclass) when persisting my objects. (This makes development of new "Ports" much easier, since most of the work is done in the superclasses; especially the various JDBC ones; since I not only do persistance but other things [like table generation], I have to provide the various differences for each database.)
The best business examples of Interfaces are the Collections. I can work with a java.util.List without caring how it is implemented; having the List as an abstract class does not make sense because there are fundamental differences in how anArrayList works as opposed to a LinkedList. Likewise, Map and Set. And if I am just working with a group of objects and don't care if it's a List, Map, or Set, I can just use the Collection interface.
Hope that this helps

Thursday, 2 August 2012

How to install database dump from java program ?

Example code will help to install database dump into database.

Runtime runtime = Runtime.getRuntime();

String strCMD = "imp " + strLOGINUSER + "/" + strLOGINPASSWORD + "@" + strLOGINSERVICE + " fromuser=" + strFROMUSER + " touser=" + strTOUSER + " file=" + strFILE;

Process p = runtime.exec("cmd /c start " + strCMD);

How to catch an exception in java without using try catch block?

Example code :

public class MyCustomExceptionHandler implements Thread.UncaughtExceptionHandler { 
public void uncaughtException(Thread t, Throwable e) { 
// Write the custom logic here 



Thread.setDefaultUncaughtExceptionHandler(new MyCustomExceptionHandler () );