Синтаксис Java с большим или меньшим чем: <> являются ли они специфичными для класса?

Я занимаюсь учебником Android и сталкивался с классом со следующим:

public class ImageAndTextAdapter extends ArrayAdapter<String> {

Является ли <String> формой наследования по типу? Или это какой-то другой синтаксис Java, о котором я должен знать?

Класс:

android.widget.ArrayAdapter<String>

Ответы

Ответ 1

Это называется generics. Класс внутри < и > является параметром типа.

Это проще всего объяснить на примере:

An ArrayList может хранить элементы. Если вы укажете такой параметр типа: ArrayList<String>, то в этом списке массивов будут храниться только элементы типа String (другими словами, он будет хранить только String)!

Аналогично, ArrayAdapter также "параметризуется" типом. ArrayAdapter, вероятно, содержит значение, и это значение будет иметь тип, указанный между < и >, который в вашем случае равен String.

Полезные ссылки:

Ответ 2

Это Java Generics.

Это похоже на С++-шаблоны.

В нем говорится, что ArrayAdapter поддерживается массивом строк. Это в основном полезно, поэтому, когда вы получаете/добавляете объекты, они безопасны для ввода текста и вам не нужно выполнять кастинг.

Ответ 3

Это часть Generics, которая была представлена ​​в Java1.5. Иногда вы не знаете, какой тип объекта вы можете передать или получить, чтобы вы могли передать общий тип объекта "?". В этом конкретном случае вы передаете объект ArrayAdapter, который содержит объекты String. вы можете прочитать больше http://en.wikipedia.org/wiki/Generics_in_Java