- Что делать
T
иS
означает? public void main(String... abc)
; что означает...
? Является ли...
названным общим?
ответ
- Это есть parameterized types. Вы можете использовать любой идентификатор здесь для представления определенного типа объекта.
- Это varargs. Вы можете передать отдельную строку или несколько строк, или массив строк в.
- Пожалуйста, прочтите the documentation. Вкратце, это параметры типа, так что общие типы и методы могут знать, к каким типам объектов они действуют.
- Это указывает, что метод может принимать переменное количество аргументов. См. varargs. В основном это сахара вокруг массива.
T
и S
- общие классы. Они могут быть любым типом класса, который вы хотите. Например, Map<K, V>
использует класс K
для класса ключей и V
для класса значений.
Map<Integer, String> map = new HashMap<Integer, String>
Что касается String...
, это означает, что любое количество параметров String.
дополняющий: String...
почти такой же, как String[]
.
На стороне метода это то же самое,
на стороне вызова the're - это различие: компилятор создает массив из параметров.
void method(String... args) {
// args is an array: getClass() returns [java.lang.String
if (args.length > 0) {
System.out.println(args[0]);
...
method(); // same as method(new String[0]);
method("1", "2", "3"); // same as method(new String[] {"1", "2", "3"});
Документация Sun Java Generics может быть немного трудно понять, поэтому я попытался написать более простой учебник по Java Generics. Вы можете найти его здесь:
T и S означает, что сам класс не знает, какие классы они есть, но вещи, которые используют класс делать.
Возьмите java.util.List. Класс списка ничего не знает о T не знает и не делает никаких предположений о Т. То, что использование класс List:
List<MyBean> l = new ArrayList<MyBean>();
Знайте, что в нем.
- 1. Generics and instanceof - java
- 2. Java Generics and reflection!
- 3. Java generics and streams
- 4. java 6 ArrayLists and Arrays and Generics
- 5. Java Abstract, Generics, and Builders
- 6. Java, Gson, Lists and Generics
- 7. Java Generics and exetends Сопоставимый
- 8. java factory methods and generics
- 9. Java Generics and unchecked cast
- 10. Java Generics and Map declaration
- 11. Java Generics and Bounded parameters в подклассах
- 12. Java Generics and Enum, потеря параметров шаблона
- 13. Java generics generics
- 14. Generics and Factory
- 15. Checkstyle and Generics
- 16. C# Casting and Generics
- 17. Jackson and Generics
- 18. Generics and System.Collections
- 19. F # casting and generics
- 20. C# Generics and Reflection
- 21. Generics and TreeSets
- 22. Generics and Parameterized Constructors
- 23. Generics and unchecked cast
- 24. Generics and User Controls
- 25. Generics and Implementing IComparable
- 26. Generics and java.beans.Introspector
- 27. JAXB Marshalling and Generics
- 28. UML Class Diagram and Generics
- 29. Swift generics and enum and boxing
- 30. Scala Data Modeling and Generics
1.может ли я использовать любой другой алфавит, A, B, C, Z? а не T, S, K, V? 2. Карта (K, V) такая же, как Карта (S, T)? может использовать любой алфавит? – cometta
Вы можете использовать любой идентификатор, который вы хотите, если он не сталкивается с существующими классами в пути к классам. Обычное условное обозначение кодирования действительно является единственным символом с верхним регистром (потому что не является нормальным иметь класс с только одним символом в качестве имени). – BalusC