2015-12-31 4 views
-6

У меня есть объект, который является интерфейсом, назовем его MyInterface что-то.Получение переменной с использованием inteface

Мой интерфейс пуст и реализуется двумя классами.

Первый имеет одну переменную int x, а вторую вторую: int x, int y.

Переменные являются частными, но у них есть методы «получить», и я их знаю.

Можно ли перейти к переменной класса, просто используя «что-то»?

+2

Если вы используете интерфейс, то дизайн не должен * нуждаться в знании конкретной реализации. Ваш дизайн испорчен. – David

+0

Я использую java как в теге (должен упомянуть об этом). Проблема в том, что это не мой дизайн. Все, что я могу сделать, это написать класс с помощью метода sigle, который получит этот объект «что-то». Я должен перейти к этим переменным, но не знаю, как это сделать. – evadin

+0

Пожалуйста, поделитесь некоторым кодом, чтобы сделать вопрос менее двусмысленным. –

ответ

1

Нет, это невозможно (за исключением отражения магии), если не добавить метод getX() к MyInterface. Тогда это легко, и у него есть хорошая сторона - преимущество в правильном дизайне.

+0

Как отметил @hhelwood, вы можете применить объект к классу-исполнителю, не требуя отражения. –

+0

Правда, если вы знаете все возможные классы реализации, вы можете использовать 'if (instanceof ClassA) ...'. Это еще не хороший дизайн, но это рабочий ответ на вопрос. Почему бы вам не опубликовать его? –

+0

Я не думаю, что могу дать хороший ответ, прежде чем ОП разъяснит вопрос (и добавит некоторый код). Согласился, что дизайн звучит некорректно. –

Смежные вопросы