我嘗試按照這個Stackoverflow post,但它並沒有幫助我的目的,我想實現。我想知道它是否可以在Java中實現。這是問題陳述。我試圖研究Java反射,Haskel或者等,但它最終有兩個不同的對象。將兩種不同的對象類型傳遞給Java中的單個方法?
我有兩種類型的對象。
-
com.mobilesecuritycard.openmobileapi.Session msc_session;
-
org.simalliance.openmobileapi.Session sim_session
我希望有它接受任何上文給出的兩個對象的方法。
例如
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:請忽略語法,因爲我只是提供了一些代碼片段來清楚地說明我的問題。
下投票是爲了什麼?這不是一個有效的編程問題嗎? – iankits 2013-04-10 10:46:11