Я понимаю, что наилучшая практика Java предполагает, что, объявляя переменную, общий интерфейс набора используется для объявления слева и конкретной реализации справа.TreeSet в Java
Таким образом, если я должен объявить Set интерфейсов, правильный путь,
Set<String> set = new TreeSet<>();
Однако с этой декларацией я не в состоянии получить доступ к методу set.last()
. Однако, когда я объявляю это так,
TreeSet<String> set = new TreeSet<>();
я могу получить доступ, last()
и first()
. Может кто-нибудь помочь мне понять почему?
Только тот, который отвечает на вопрос, лучший +1 –