IInstantSource 介面
定義
重要
部分資訊涉及發行前產品,在發行之前可能會有大幅修改。 Microsoft 對此處提供的資訊,不做任何明確或隱含的瑕疵擔保。
提供即時存取的權限。
[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 |
回傳包裹實例的 |
| JniManagedPeerState |
管理貴族的狀況。 (繼承來源 IJavaPeerable) |
| JniObjectReferenceControlBlock |
提供即時存取的權限。 (繼承來源 IJavaPeerable) |
| JniPeerMembers |
成員存取與召喚支援。 (繼承來源 IJavaPeerable) |
| PeerReference |
回傳JniObjectReference包裹後的 Java 物件實例。 (繼承來源 IJavaPeerable) |
方法
| 名稱 | Description |
|---|---|
| Disposed() |
當實例被處理後才被召喚。 (繼承來源 IJavaPeerable) |
| DisposeUnlessReferenced() |
如果沒有未解決的參考資料,則 |
| Finalized() |
當實例完成後才會被通知。 (繼承來源 IJavaPeerable) |
| Fixed(Instant) |
取得一個總是在同一瞬間回傳的來源。 |
| Instant() |
取得源頭的當前瞬間。 |
| Millis() |
取得當前毫秒的訊號來源。 |
| Offset(IInstantSource, Duration) |
取得一個來源,能從指定來源回傳並加上指定時長的瞬間。 |
| SetJniIdentityHashCode(Int32) |
將回傳的值設為 |
| SetJniManagedPeerState(JniManagedPeerStates) |
提供即時存取的權限。 (繼承來源 IJavaPeerable) |
| SetPeerReference(JniObjectReference) |
將回傳的值設為 |
| System() |
取得一個來源,利用最佳可用系統時鐘回傳當前時刻。 |
| Tick(IInstantSource, Duration) |
取得一個來源,從指定來源回傳時間,並被截斷至指定時長中最接近的出現點。 |
| UnregisterFromRuntime() |
取消註冊此實例,讓執行時不會在未來 Java.Interop.JniRuntime+JniValueManager.PeekValue 的呼叫中回傳該實例。 (繼承來源 IJavaPeerable) |
| WithZone(ZoneId) |
回傳指定時區的時鐘。 |
擴充方法
| 名稱 | Description |
|---|---|
| GetJniTypeName(IJavaPeerable) |
取得實例 |
| JavaAs<TResult>(IJavaPeerable) |
試著強制 |
| JavaCast<TResult>(IJavaObject) |
執行 Android 執行時檢查型別轉換。 |
| JavaCast<TResult>(IJavaObject) |
提供即時存取的權限。 |
| TryJavaCast<TResult>(IJavaPeerable, TResult) |
試著強制 |