I want to code a single method `add()` in Java, that could add both integers, strings etc. Is Generics will help me. 

I couldn't understand the ultimate aim of Generics. I am so confused.

Generics vs Overloading? 

```
public Integer add(Integer i, Integer j){return i+j;}
public String add(String i, String j){return i+j;}
public <T> T add(T i, T j){return i+j;} //this gives me error.

```

Please get me out of it.

Thanks.