«Если рабочий хочет хорошо выполнять свою работу, он должен сначала заточить свои инструменты» — Конфуций, «Аналитики Конфуция. Лу Лингун»
титульная страница > программирование > Как метод Java может иметь один тип возвращаемого значения, но при этом иметь два типа?

Как метод Java может иметь один тип возвращаемого значения, но при этом иметь два типа?

Опубликовано 22 ноября 2024 г.
Просматривать:219

How Can a Java Method Have a Single Return Type But Appear to Have Two?

Понимание обобщений в методах Java

Присутствие нескольких «типов возвращаемого значения» в определении метода Java может показаться загадочным. Давайте углубимся в пример:

public  List getResult(String s);

где Foo — это определенный вами класс.

Вопрос: Каков тип возвращаемого значения этого метода?

Ответ: Этот метод имеет единственный тип возвращаемого значения: List.

Вопрос: Почему кажется, что у него два типа возвращаемого значения?

Ответ: Метод использует дженерики, мощную функцию Java, которая позволяет создавать методы, работающие с разными типами, с использованием параметров типа. В этом случае:

  • : эта часть объявляет обобщенный тип для метода. Это означает, что метод может принимать любой параметр типа E, который является подклассом Foo.
  • List: это фактический возвращаемый тип метода. Он возвращает список объектов типа E, который может быть любым подклассом Foo.

По сути, метод заявляет, что он может работать с любым типом, расширяющим Foo, и возвращает список таких типов. . Это обеспечивает гибкость и безопасность типов, гарантируя, что возвращаемый список будет содержать только объекты, которые являются подклассами Foo.

Последний учебник Более>

Изучайте китайский

Отказ от ответственности: Все предоставленные ресурсы частично взяты из Интернета. В случае нарушения ваших авторских прав или других прав и интересов, пожалуйста, объясните подробные причины и предоставьте доказательства авторских прав или прав и интересов, а затем отправьте их по электронной почте: [email protected]. Мы сделаем это за вас как можно скорее.

Copyright© 2022 湘ICP备2022001581号-3