2013-07-19 10 views
7

Powiedział, że invoke-virtual wywołuje metodę wirtualną, podczas gdy invoke-direct jest metodą bezpośrednią.Jaka jest różnica invoke-virtual i invoke-direct w Androidzie

Jednak nie jestem pewien, co to jest "metoda wirtualna" i jaka jest "metoda bezpośrednia"?

Innymi słowy, jaka metoda będzie wywoływać będzie invoke-virtual i jaki rodzaj będzie invoke-direct?

Czy ktoś może podać konkretny przykład?

Z góry dziękuję.

Odpowiedz

17

Od http://source.android.com/devices/tech/dalvik/dex-format.html metodą bezpośrednią jest "dowolny z elementów statycznych, prywatnych lub konstruktorów".

Jednak metody statyczne mają własny kod wywołania-statyczny, więc metoda invoke-direct jest używana do konstruktorów i metod prywatnych.

+0

Link jest już martwy – Bugster

+1

Naprawiono link, dzięki. – JesusFreke

+0

Wierzę, że link powinien być http://source.android.com/devices/tech/dalvik/dalvik-bytecode.html. Zobacz sekcję 'invoke-kind'. –

Powiązane problemy