Может `публичныйМетод T (Integer x) {...} `принимает ввод типа, который расширяет Integer? - PullRequest
0 голосов
/ 03 марта 2019

Меня смущает один из вопросов на моем практическом экзамене.

В Java класс Integer расширяет базовый абстрактный класс Number.Теперь предположим, что у нас есть метод с сигнатурой:

public <T extends Number> T method( Integer x ) {...}

. Для каждого из следующих действий напишите «can» или «can» в пробелы, чтобы правильно завершить оператор.

Метод ______ принимает любые входные данные типа, расширяющего Integer

Я запутался, потому что, когда я пытаюсь создать свой собственный класс, расширяющий Integer, IntelliJ говорит мне: «Не могуунаследовать от окончательного 'java.lang.Integer' ".

Если я не могу наследовать от класса Integer, то как бы я дал ввод, который "расширяет Integer" в первую очередь?

Ответы [ 3 ]

0 голосов
/ 03 марта 2019

Вы должны посмотреть на javadoc .Вы не можете расширить класс, который объявлен как final

0 голосов
/ 03 марта 2019

Целочисленный класс для Java - final, его нельзя наследовать.

public final class Integer extends Number implements Comparable<Integer> 
0 голосов
/ 03 марта 2019

Это утверждение довольно плохо сформулировано.Я надеюсь, что это было написано так, чтобы сбить с толку студента, а не потому, что они забыли, что обертки примитивных типов - final классы.

Итак, чтобы ответить на ваш вопрос, ответ будет " не может".
Но если можете, уточните этот вопрос у своего профессора или экзаменатора.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...