Clases y métodos genéricos


Clases genéricas

public class UseTwo<T, X> {
	T one;
	X two;

	UseTwo(T one, X two) {
		this.one = one;
		this.two = two;
	}

	T getT() {
		return one;
	}

	X getX() {
		return two;
	}

	// test it by creating it with <String, Integer>
	public static void main(String[] args) {
		UseTwo<String, Integer> twos = new UseTwo<String, Integer>("foo", 42);
		String theT = twos.getT(); // returns a String
		int theX = twos.getX(); // returns Integer, unboxes to int
	}
}

Métodos genéricos:

public class CreateAnArrayList {
	public <T> void makeArrayList(T t) { // take an object of an unknown type and use a
	                                     // "T" to represent the type
		List<T> list = new ArrayList<T>(); // now we can create the
		// list using "T"
		list.add(t);

		System.out.println(list.get(0).toString());
	}

	public static void main(String[] args) {
		CreateAnArrayList arr = new CreateAnArrayList();
		Horse h = new Horse(4, "eno");
		arr.makeArrayList(h);
	}
}
Anuncios
Clases y métodos genéricos

Un comentario en “Clases y métodos genéricos

  1. farce dijo:

    Muy interesnate, sobre todo el uso de tipos genéricos, tan sencillo, en realidad es al invocar cuando se les asigna valor. ¿Que limitaciones puede tener?, pues no todas las operaciones entre objetos son posibles, ¿limita eso las posibilidades de la plantilla?

    Referente a las colecciones, para rematar, puedes añadir los patrones referentes a las mismas como Iterator, Composite (para árboles, o jerarquías de objetos compuestos y hoja), incluso Visitor.

Los comentarios están cerrados.