Я пытаюсь следовать этому сообщению Stackoverflow, но это не помогло моей цели чего я хотел добиться. Я хочу знать, достижимо ли это на Java. Вот постановка задачи. Я пытался изучить отражение Java, Haskel или и т. д., но в итоге у него было два разных объекта.
У меня есть два типа объектов.
#P3#
#P4#
Я хочу иметь метод, который принимает любой из двух объектов, указанных выше.
Например
public void runOperation(Object activeSession) {
activeSession.openLogicalChannel(APPLET_AID);
-- do the rest of operations ---
}
Я хочу использовать эту функцию, как указано ниже
if(isSetSIMSessionTrue()){
Log.i(LOG_TAG, "Using SIM Session as its True");
sim_session = getSim_session();
runOperation((org.simalliance.openmobileapi.Session) sim_session);
} else{
Log.i(LOG_TAG, "Using MSC Session as its false");
msc_session = getMSCSession();
runOperation((com.mobilesecuritycard.openmobileapi.Session) msc_session);
}
Я даже могу получить правильный класс объекта, используя
String classNameToBeLoaded = activeSession.getClass().getName();
Но все еще не удалось получить свойства объекта для объекта activeSession.
Есть ли способ передать любой из объектов сеанса методу runOperation и использовать activeSession только для выполнения остальной части операции. Поскольку оба объекта имеют одинаковые методы и функциональные возможности, но имеют доступ к другому защищенному элементу на устройстве Android. Итак, я не хочу писать два разных метода runOperation() для разных объектов. Точнее, можно ли привести тип объекта к другому объекту. Я не уверен в этом. Любые указатели или помощь будут благодарны. Надеюсь, я ясно выразился, чего хочу добиться.
PS: пожалуйста, игнорируйте синтаксис, так как я просто предоставляю некоторые фрагменты кода, чтобы прояснить мой вопрос.