語言

IInstantSource 介面

定義

提供即時存取的權限。

[Android.Runtime.Register("java/time/InstantSource", "", "Java.Time.IInstantSourceInvoker", ApiSince=34)]
public interface IInstantSource : Android.Runtime.IJavaObject, IDisposable, Java.Interop.IJavaPeerable
[<Android.Runtime.Register("java/time/InstantSource", "", "Java.Time.IInstantSourceInvoker", ApiSince=34)>]
type IInstantSource = interface
    interface IJavaObject
    interface IDisposable
    interface IJavaPeerable
衍生
屬性
實作

備註

提供即時存取的權限。

此介面的實例用於存取當前瞬間的可插拔表示。 例如,可以使用 InstantSource,而不是使用 System#currentTimeMillis()

此抽象的主要目的是允許在需要時插入替代即時來源。 應用程式使用物件來取得當前時間,而非靜態方法。 這可以簡化測試流程。

因此,這個介面並不保證結果實際上代表時間線上的當前時刻。 相反地,它讓應用程式能夠提供一個受控的視圖,來判斷當前的瞬間是什麼。

應用的最佳實務是將 傳遞 InstantSource 到 任何需要當前瞬間的方法。 依賴注入框架是達成此目標的一種方式:

public class MyBean {
               private InstantSource source;  // dependency inject
               ...
               public void process(Instant endInstant) {
                 if (source.instant().isAfter(endInstant) {
                   ...
                 }
               }
             }

此方法允許在測試中使用替代光源,例如 或#fixed(Instant) fixed#offset(InstantSource, Duration) offset

system出廠方法則根據最佳可用系統時鐘提供來源。 這可能會使用 System#currentTimeMillis(),或如果有更高解析度的時鐘。

新增17。

Java 文件 java.time.InstantSource

本頁部分內容為基於 Open Source Project 所創建與分享的作品,並依授權條款所描述的使用進行修改。

屬性

名稱 Description
Handle

取得底層 Android 物件的 JNI 值。

(繼承來源 IJavaObject)
JniIdentityHashCode

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

(繼承來源 IJavaPeerable)
JniManagedPeerState

管理貴族的狀況。

(繼承來源 IJavaPeerable)
JniObjectReferenceControlBlock

提供即時存取的權限。

(繼承來源 IJavaPeerable)
JniPeerMembers

成員存取與召喚支援。

(繼承來源 IJavaPeerable)
PeerReference

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

(繼承來源 IJavaPeerable)

方法

名稱 Description
Disposed()

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

(繼承來源 IJavaPeerable)
DisposeUnlessReferenced()

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

(繼承來源 IJavaPeerable)
Finalized()

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

(繼承來源 IJavaPeerable)
Fixed(Instant)

取得一個總是在同一瞬間回傳的來源。

Instant()

取得源頭的當前瞬間。

Millis()

取得當前毫秒的訊號來源。

Offset(IInstantSource, Duration)

取得一個來源,能從指定來源回傳並加上指定時長的瞬間。

SetJniIdentityHashCode(Int32)

將回傳的值設為 JniIdentityHashCode

(繼承來源 IJavaPeerable)
SetJniManagedPeerState(JniManagedPeerStates)

提供即時存取的權限。

(繼承來源 IJavaPeerable)
SetPeerReference(JniObjectReference)

將回傳的值設為 PeerReference

(繼承來源 IJavaPeerable)
System()

取得一個來源,利用最佳可用系統時鐘回傳當前時刻。

Tick(IInstantSource, Duration)

取得一個來源,從指定來源回傳時間,並被截斷至指定時長中最接近的出現點。

UnregisterFromRuntime()

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

(繼承來源 IJavaPeerable)
WithZone(ZoneId)

回傳指定時區的時鐘。

擴充方法

名稱 Description
GetJniTypeName(IJavaPeerable)

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

JavaAs<TResult>(IJavaPeerable)

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

JavaCast<TResult>(IJavaObject)

執行 Android 執行時檢查型別轉換。

JavaCast<TResult>(IJavaObject)

提供即時存取的權限。

TryJavaCast<TResult>(IJavaPeerable, TResult)

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

適用於