I\'ve been doing an Android tutorial and encountered a class with the following:
public class ImageAndTextAdapter extends ArrayAdapter {
That's Java Generics.
It's like C++ templates.
It says that the ArrayAdapter is backed by an array of Strings. It's mostly useful so when you get/add objects, it's type-safe and you don't have to perform any casting.
This is called generics. The class within < and > is a type parameter.
This is easiest explained by an example:
An ArrayList can store items. If you specify a type parameter like this: ArrayList<String> then this array list will store items of String type only, (in other words, it will store Strings only)!
Similarly, the ArrayAdapter is "parameterized" by a type as well. The ArrayAdapter probably holds a value, and this value will be of the type specified between < and >, which in your case is String.
Useful links:
This is part of Generics which was introduced in Java1.5, Sometimes you don't know what type of object you can pass or get, so you can pass a generic type of object "?". In this particular instance, you are passing ArrayAdapter object which contains String objects. you can read more http://en.wikipedia.org/wiki/Generics_in_Java
This is a Java generic class.
http://download.oracle.com/javase/tutorial/java/generics/index.html