言語

IFormattable インターフェイス

定義

Formattable インターフェイスは、's'java.util.Formatter変換指定子を使用してカスタム書式設定を実行する必要がある任意のクラスによって実装される必要があります。

[Android.Runtime.Register("java/util/Formattable", "", "Java.Util.IFormattableInvoker")]
public interface IFormattable : Android.Runtime.IJavaObject, IDisposable, Java.Interop.IJavaPeerable
[<Android.Runtime.Register("java/util/Formattable", "", "Java.Util.IFormattableInvoker")>]
type IFormattable = interface
    interface IJavaObject
    interface IDisposable
    interface IJavaPeerable
属性
実装

注釈

Formattable インターフェイスは、's'java.util.Formatter変換指定子を使用してカスタム書式設定を実行する必要がある任意のクラスによって実装される必要があります。 このインターフェイスを使用すると、任意のオブジェクトを書式設定するための基本的な制御が可能になります。

たとえば、次のクラスは、フラグと長さの制約に応じて、株式の名前のさまざまな表現を出力します。

{@code
              import java.nio.CharBuffer;
              import java.util.Formatter;
              import java.util.Formattable;
              import java.util.Locale;
              import static java.util.FormattableFlags.*;

              ...

              public class StockName implements Formattable {
                  private String symbol, companyName, frenchCompanyName;
                  public StockName(String symbol, String companyName,
                                   String frenchCompanyName) {
                      ...
                  }

                  ...

                  public void formatTo(Formatter fmt, int f, int width, int precision) {
                      StringBuilder sb = new StringBuilder();

                      // decide form of name
                      String name = companyName;
                      if (fmt.locale().equals(Locale.FRANCE))
                          name = frenchCompanyName;
                      boolean alternate = (f & ALTERNATE) == ALTERNATE;
                      boolean usesymbol = alternate || (precision != -1 && precision < 10);
                      String out = (usesymbol ? symbol : name);

                      // apply precision
                      if (precision == -1 || out.length() < precision) {
                          // write it all
                          sb.append(out);
                      } else {
                          sb.append(out.substring(0, precision - 1)).append('*');
                      }

                      // apply width and justification
                      int len = sb.length();
                      if (len < width)
                          for (int i = 0; i < width - len; i++)
                              if ((f & LEFT_JUSTIFY) == LEFT_JUSTIFY)
                                  sb.append(' ');
                              else
                                  sb.insert(0, ' ');

                      fmt.format(sb.toString());
                  }

                  public String toString() {
                      return String.format("%s - %s", symbol, companyName);
                  }
              }
            }

java.util.Formatterと組み合わせて使用すると、上記のクラスはさまざまな書式指定文字列に対して次の出力を生成します。

{@code
              Formatter fmt = new Formatter();
              StockName sn = new StockName("HUGE", "Huge Fruit, Inc.",
                                           "Fruit Titanesque, Inc.");
              fmt.format("%s", sn);                   //   -> "Huge Fruit, Inc."
              fmt.format("%s", sn.toString());        //   -> "HUGE - Huge Fruit, Inc."
              fmt.format("%#s", sn);                  //   -> "HUGE"
              fmt.format("%-10.8s", sn);              //   -> "HUGE      "
              fmt.format("%.12s", sn);                //   -> "Huge Fruit,*"
              fmt.format(Locale.FRANCE, "%25s", sn);  //   -> "   Fruit Titanesque, Inc."
            }

書式設定可能なファイルは、マルチスレッド アクセスに対して安全であるとは限りません。 スレッド セーフは省略可能であり、このインターフェイスを拡張して実装するクラスによって適用される場合があります。

特に指定しない限り、このインターフェイス内の任意のメソッドに null 引数を渡すと、 NullPointerException がスローされます。

1\.5 で追加されました。

Javaドキュメント。

このページの一部は、によって作成および共有され、に記載されている条件に従って使用される作業に基づく変更です。

プロパティ

名前 説明
Handle

基になる Android オブジェクトの JNI 値を取得します。

(継承元 IJavaObject)
JniIdentityHashCode

ラップされたインスタンスの java.lang.System.identityHashCode() の値を返します。

(継承元 IJavaPeerable)
JniManagedPeerState

マネージド ピアの状態。

(継承元 IJavaPeerable)
JniObjectReferenceControlBlock

Formattable インターフェイスは、's'java.util.Formatter変換指定子を使用してカスタム書式設定を実行する必要がある任意のクラスによって実装される必要があります。

(継承元 IJavaPeerable)
JniPeerMembers

メンバー アクセスと呼び出しのサポート。

(継承元 IJavaPeerable)
PeerReference

ラップされたJava オブジェクト インスタンスのJniObjectReferenceを返します。

(継承元 IJavaPeerable)

メソッド

名前 説明
Disposed()

インスタンスが破棄されたときに呼び出されます。

(継承元 IJavaPeerable)
DisposeUnlessReferenced()

このインスタンスへの未処理の参照がない場合は、 Dispose()を呼び出します。それ以外の場合は何も実行しません。

(継承元 IJavaPeerable)
Finalized()

インスタンスが終了したときに呼び出されます。

(継承元 IJavaPeerable)
FormatTo(Formatter, FormatFlags, Int32, Int32)

指定した Formatter formatterを使用してオブジェクトを書式設定します。

SetJniIdentityHashCode(Int32)

JniIdentityHashCodeによって返される値を設定します。

(継承元 IJavaPeerable)
SetJniManagedPeerState(JniManagedPeerStates)

Formattable インターフェイスは、's'java.util.Formatter変換指定子を使用してカスタム書式設定を実行する必要がある任意のクラスによって実装される必要があります。

(継承元 IJavaPeerable)
SetPeerReference(JniObjectReference)

PeerReferenceによって返される値を設定します。

(継承元 IJavaPeerable)
UnregisterFromRuntime()

ランタイムが将来の Java.Interop.JniRuntime+JniValueManager.PeekValue 呼び出しから返されないように、このインスタンスの登録を解除します。

(継承元 IJavaPeerable)

拡張メソッド

名前 説明
GetJniTypeName(IJavaPeerable)

インスタンス selfの型の JNI 名を取得します。

JavaAs<TResult>(IJavaPeerable)

selfを強制的にTResult入力し、強制型がJava側で有効であることを確認します。

JavaCast<TResult>(IJavaObject)

Android ランタイムチェック型変換を実行します。

JavaCast<TResult>(IJavaObject)

Formattable インターフェイスは、's'java.util.Formatter変換指定子を使用してカスタム書式設定を実行する必要がある任意のクラスによって実装される必要があります。

TryJavaCast<TResult>(IJavaPeerable, TResult)

selfを強制的にTResult入力し、強制型がJava側で有効であることを確認します。

適用対象