Посмотрите на этот пример:
Код: Выделить всё
public class Parent {}
public class Boy extends Parent {}
public class Girl extends Parent {}
Parent father = new Boy();
Parent mother = new Girl();
Boy kid = (Boy)father;
Girl kiddette = (Girl)mother;
Итак, мне нужно автоматическое приведение метод, примерно такой:
Код: Выделить всё
public ? downcast(? parent) { return ? parent; }
Код: Выделить всё
Boy kid = downcast(father);
Girl kiddette = downcast(mother);
Код: Выделить всё
instanceofЧто мне нужно разместить вместо ? >, ? и ?, чтобы это работало.
Я помню, что я делал то же самое около 10 лет назад на Java, и я помню, что Меня озадачил код, но он работал и я не понимал, как он работает, просто он работает, но мне не нужно было снова делать эту штуку на Java за последние 10 лет, поэтому я забыл, что делал. И я помню, что мне удалось решить ее без проверок типов. Итак, одна строка кода, которая работала независимо от того, сколько дочерних классов было у родительского класса.
Подробнее здесь: https://stackoverflow.com/questions/765 ... es-in-java
Мобильная версия