我正在閱讀Big Nerd牧場關於平板電腦碎片的一本書。我遇到了自學Java時沒有遇到的代碼。什麼是類的嵌套接口的語義?
public interface Callbacks
{
void onCrimeSelected(Crime crime);
}
@Override
public void onAttach(Activity activity)
{
super.onAttach(activity);
mCallbacks = (Callbacks) activity;
}
@Override
public void onDetach()
{
super.onDetach();
mCallbacks = null;
}
正如您所看到的,這是一個嵌入類ClassA中的代碼。因此,接口範圍將是ClassA.Callbacks。現在,Activity和ClassA完全無關,但我可以將Activity轉換爲Callbacks?我在這裏錯過了什麼嗎?
的這部分代碼我百思不得其解:
@Override
public void onAttach(Activity activity)
{
super.onAttach(activity);
mCallbacks = (Callbacks) activity;
}
我迷惑的,我們怎麼能不相關的類轉換到另一個類/接口屬於不同的範疇/層次。
有人可以幫我理解嗎? TIA!
你可以,'噸。活動本身需要實現該接口。 接口可以嵌套的一個原因是,如果他們只是打算/期望與該類一起使用。 – Stultuske 2015-02-06 07:51:12
當我繼續閱讀本書時,託管活動實現了該界面。這應該解釋它。但現在對我來說這太奇怪了。我必須承認,在這部分作者的寫作中,我迷失了方向。 – 2015-02-06 07:57:09