Как получить общие Подклассы 2 Интерфейсов в Java с Eclipse? - PullRequest
0 голосов
/ 29 октября 2008

На самом деле я пытаюсь найти подкласс InputStream, который также Serializable. Я думаю, что этого не существует. Поскольку оба интерфейса имеют много подклассов, трудно найти тот, который является подклассом обоих.

До сих пор я не нашел ничего, что могло бы помочь в моем поиске в Eclipse. Есть идеи?

Edit: теперь я понимаю, что сериализация Stream не совсем то, что нужно делать. Но суть вопроса заключается в следующем: как найти общий подкласс двух интерфейсов.

Ответы [ 5 ]

1 голос
/ 03 ноября 2008

Не обижайтесь, но мне кажется, что вы пытаетесь решить не ту проблему. Чего вы действительно пытаетесь достичь?

1 голос
/ 03 ноября 2008

В затмении сочетание клавиш Ctrl + T открывает иерархию типов. Вы даже можете использовать эту функцию в базовом классе или интерфейсе и получить список со всеми реализациями / подклассами этого типа.

Если вы сделаете это дважды и сравните два результата, вы найдете ваши классы. Однако в случае, например, Сериализуемый и сопоставимый пересечение может стать довольно огромным ...

1 голос
/ 29 октября 2008

Сериализация InputStream - не очень жизнеспособное решение. Чтобы проиллюстрировать это, представьте, что у вас есть InputStream из сокета и вы его сериализуете. Прежде чем десериализовать его, сокет закрывается. Теперь, когда вы на самом деле десериализовали его, ресурс исчез, и у вас в руках неприятное исключение.

Что вам лучше сделать, если вам нужно сериализовать ресурс, так это сериализовать его местоположение или узнать, как его получить. В примере сокета: имя хоста и порт, для файлов: путь к файлу и т. Д.

0 голосов
/ 22 сентября 2014

Вы можете получить набор подтипов программно с помощью библиотеки Reflections . Ваш ответ будет пересечением двух множеств.

Set<Class<? extends Serializable>> subTypes = 
           reflections.getSubTypesOf(Serializable.class);

Однако это не специфическое решение для Eclipse.

0 голосов
/ 29 октября 2008

Я не уверен, что вы можете сделать это на самом деле (или, по крайней мере, простым способом ...).

В любом случае, мне нравится плагин " Открытая реализация ", который позволяет щелкнуть правой кнопкой мыши метод класса или интерфейса (или самого класса / интерфейса) и запросить все известные реализации этот метод / интерфейс / класс. Этот плагин может вам помочь (теперь вы можете искать все реализации InputStream

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