powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Java [игнор отключен] [закрыт для гостей] / Если метод возвращает неизвестный класс, как быть?
17 сообщений из 17, страница 1 из 1
Если метод возвращает неизвестный класс, как быть?
    #38390455
Фотография Hett
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Вот напихал в очередь объектов.
Код: java
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
            PriorityQueue queue =  new PriorityQueue(10, comparator);

            BuildCompleted e1 = new BuildCompleted();
            e1._time = new Timestamp(1377950159);

            Battle b1 = new Battle();
            b1._time = new Timestamp(1377950150);

            queue.add(e1);
            queue.add(b1);



А как их оттуда вытаскивать?
...
Рейтинг: 0 / 0
Если метод возвращает неизвестный класс, как быть?
    #38390456
Фотография Hett
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Код: java
1.
2.
3.
4.
5.
6.
7.
            while (true) {
                ??? e = (BuildCompleted)queue.poll();
                if(e == null) {
                    break;
                }
                System.out.println(e.getTimeStamp());
            }
...
Рейтинг: 0 / 0
Если метод возвращает неизвестный класс, как быть?
    #38390458
Фотография Hett
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
тайпкаст тоже
...
Рейтинг: 0 / 0
Если метод возвращает неизвестный класс, как быть?
    #38390459
just_vladimir
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Hett,
завести интерфейс ITimestampOwners с методом getTimeStamp, сказать что оба класса его реализуют, соответственно его использовать в качестве типа.
...
Рейтинг: 0 / 0
Если метод возвращает неизвестный класс, как быть?
    #38390461
Фотография Hett
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
гмм, ща)
...
Рейтинг: 0 / 0
Если метод возвращает неизвестный класс, как быть?
    #38390463
Фотография Usman
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Hett,

Вы вроде как решили проблему: 14779831 ?
...
Рейтинг: 0 / 0
Если метод возвращает неизвестный класс, как быть?
    #38390465
Фотография Hett
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Понятно, спс, тоже самое и с абстрактным классом можно.
...
Рейтинг: 0 / 0
Если метод возвращает неизвестный класс, как быть?
    #38390466
Фотография Hett
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
UsmanHett,

Вы вроде как решили проблему: 14779831 ?

Мне не понравилось что-то то решение. Лишние городушки. Сейчас все хорошо)
...
Рейтинг: 0 / 0
Если метод возвращает неизвестный класс, как быть?
    #38390473
Фотография mayton
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Hett, ты можешь через instanceof проверять что объект воходит в базовый тип для всех твоих объектов.
Это 1 проверка. Если ты создал базовый тип конечно.
...
Рейтинг: 0 / 0
Если метод возвращает неизвестный класс, как быть?
    #38390476
Фотография Hett
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
maytonHett, ты можешь через instanceof проверять что объект воходит в базовый тип для всех твоих объектов.
Это 1 проверка. Если ты создал базовый тип конечно.
Типа
Код: java
1.
2.
3.
4.
5.
6.
7.
if(a instanceof Class1) {
   Class1 x = ...
} else if (a instanceof Class2) {
   Class2 x = ...
}

x.run(); 


?

Как я понимаю, что если у меня есть один базовый класс который требует от наследников реализации метода run, то я могу использовать его в качестве универсального типа данных?
...
Рейтинг: 0 / 0
Если метод возвращает неизвестный класс, как быть?
    #38390515
just_vladimir
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
HettКак я понимаю, что если у меня есть один базовый класс который требует от наследников реализации метода run, то я могу использовать его в качестве универсального типа данных?
угу

HettТипа
Код: java
1.
2.
3.
4.
5.
6.
7.
if(a instanceof Class1) {
   Class1 x = ...
} else if (a instanceof Class2) {
   Class2 x = ...
}

x.run(); 



А такое в случае, если нужен метод, которого нет в базовом классе/интерфейсе
...
Рейтинг: 0 / 0
Если метод возвращает неизвестный класс, как быть?
    #38390516
Фотография mayton
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Делай как хочешь. Но не забывай про паттерн RCWP (Replace Conditional with polymorphism).
...
Рейтинг: 0 / 0
Если метод возвращает неизвестный класс, как быть?
    #38390517
Фотография Hett
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Просто я вот че не понял то сразу:
К примеру есть класс


Код: java
1.
2.
3.
4.
5.
public abstract class Test {

    public abstract void run();

}



Есть его наследник:

Код: java
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
public class TestExt extends Test {


    protected int localMethod()
    {
        return 1;
    }

    public void run()
    {
        System.out.println(this.localMethod());
    }
}



При этом наследника засовываем в переменную типа Test

Код: java
1.
2.
        Test test = new TestExt();
        test.run();



И все как-то работает. По сути получается, что в переменной типа Test находится полноценный инстанс типа TestExt, собстна даже если поглядеть в test.getClass() , то он скажет что "class TestExt".
Но если применить тайпкаст к примитивным типам, то они усекаются.
...
Рейтинг: 0 / 0
Если метод возвращает неизвестный класс, как быть?
    #38390518
Фотография Hett
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Хотя как я понимаю по логике вещей, типизация классов нужна только на стадии компилирования и разработки, а при выполнении программы оно уже не имеет значения и отсюда получаются подобные допуски?
...
Рейтинг: 0 / 0
Если метод возвращает неизвестный класс, как быть?
    #38390523
Фотография Usman
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
HettПросто я вот че не понял то сразу:Это называется Восходящим преобразованием .

P.S.
mayton Вам уже намекал на счет этого.
...
Рейтинг: 0 / 0
Если метод возвращает неизвестный класс, как быть?
    #38390526
Фотография Hett
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
потнятно, пропустил этот момент, надо будет еще раз перечитать все) спс)
...
Рейтинг: 0 / 0
Если метод возвращает неизвестный класс, как быть?
    #38390528
Фотография Hett
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
в нетипизированных языках не обращаешь на это внимание
...
Рейтинг: 0 / 0
17 сообщений из 17, страница 1 из 1
Форумы / Java [игнор отключен] [закрыт для гостей] / Если метод возвращает неизвестный класс, как быть?
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]