понеділок, 2 лютого 2015 р.

Java: Generics

Let's imagine that we dont't know anything about Generics.



List strList = new ArrayList();
strList.add("some text");
// Even list is for string but we can add numbers
strList.add(new Integer(0));
String str = (String)strList.get(0);
// Error casting will be present (ClassCastException)
Integer i = (Integer)strList.get(0);

Here the example of code using Generics:

List<String> strList = new ArrayList<String>();
strList.add("some text");
strList.add(new Integer()); // error will be
String str = strList.get(0);
Integer i = strList.get(0); // error will be

We can use Generics for in methods:
class Hello{
public <T, K, M> T sum (K item1, M item2){
//to do
}


Also we can have two objects:
Box <Number> b1;
Box <Integer> b2;

Even though Integer extends Number these are different classes. And if we have
sum(Box<Number> b, Box<Number> c)
We can not do the next:
sum(b2, b1)
In this case we can create:
class Box<T extends Number>{
//to do
}
Then we can write:
Box<Integer> b1;
Box<Float> b2;
Box<Number> b3;
Box<String> b4; // error will be

Немає коментарів:

Дописати коментар