語言

IJavaPeerable 介面

定義

支援使用 Java 物件實例。

public interface IJavaPeerable : IDisposable
type IJavaPeerable = interface
    interface IDisposable
衍生
實作

備註

介面IJavaPeerable提供存取 Java 物件實例、調用該 Java 實例成員、控制該物件實例的生命週期,以及包裝器被處置或最終定稿時的回調。 允許的操作如下:

  • 物件實例存取可透過該 PeerReference 屬性取得。
  • 會員可透過 JniPeerMembers 該物業進行存取與祈禱。
  • 物件壽命控制與Java.Interop.IJavaPeerable.DisposeDisposeUnlessReferenced()方法。
  • 價值可見度透過 Java.Interop.IJavaPeerable.DisposeUnlessRegistered來控制。
  • 處理與最終回撥透過 Disposed() and Finalized() 方法進行。
<區塊 subset=“none” 類型=“note”>

請勿實作此介面。

若沒有PeerReference回傳非default(JniObjectReference)值的實作,此介面的實作毫無用處,而null非值對應於 Java 虛擬機器中的 雖然這可以做到,但通常無法執行,導致 Java 產生「意外」NullPointerException錯誤。 此外,即使你可以實作 PeerReference,任何實作都無法與垃圾回收器結合,導致記憶體洩漏或額外清理數值。

</區塊>

屬性

名稱 Description
JniIdentityHashCode

回傳包裹實例的 java.lang.System.identityHashCode() 值。

JniManagedPeerState

管理貴族的狀況。

JniObjectReferenceControlBlock

支援使用 Java 物件實例。

JniPeerMembers

成員存取與召喚支援。

PeerReference

回傳JniObjectReference包裹後的 Java 物件實例。

方法

名稱 Description
Disposed()

當實例被處理後才被召喚。

DisposeUnlessReferenced()

如果沒有未解決的參考資料,則 Dispose()呼叫;否則,則不做任何事。

Finalized()

當實例完成後才會被通知。

SetJniIdentityHashCode(Int32)

將回傳的值設為 JniIdentityHashCode

SetJniManagedPeerState(JniManagedPeerStates)

支援使用 Java 物件實例。

SetPeerReference(JniObjectReference)

將回傳的值設為 PeerReference

UnregisterFromRuntime()

取消註冊此實例,讓執行時不會在未來 Java.Interop.JniRuntime+JniValueManager.PeekValue 的呼叫中回傳該實例。

擴充方法

名稱 Description
GetJniTypeName(IJavaPeerable)

取得實例 self類型的 JNI 名稱。

JavaAs<TResult>(IJavaPeerable)

試著強制self輸入 TResult,檢查 強制在 Java 端是否有效。

TryJavaCast<TResult>(IJavaPeerable, TResult)

試著強制self輸入 TResult,檢查 強制在 Java 端是否有效。

適用於