IFormattable インターフェイス
定義
重要
一部の情報は、リリース前に大きく変更される可能性があるプレリリースされた製品に関するものです。 Microsoft は、ここに記載されている情報について、明示または黙示を問わず、一切保証しません。
インターフェイスはFormattable
、 の変換指定子を使用してカスタム書式設定を実行する必要がある任意のjava.util.Formatter
クラスによって実装される's'
必要があります。
[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
、 の変換指定子を使用してカスタム書式設定を実行する必要がある任意のjava.util.Formatter
クラスによって実装される's'
必要があります。 このインターフェイスを使用すると、任意のオブジェクトを書式設定するための基本的な制御が可能になります。
たとえば、次のクラスは、フラグと長さの制約に応じて、株式の名前のさまざまな表現を出力します。
{@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.util.Formattable
Java ドキュメント。
このページの一部は、によって作成および共有された作業に基づく変更であり、に記載されている条件に従って使用されます。
プロパティ
Handle |
基になる Android オブジェクトの JNI 値を取得します。 (継承元 IJavaObject) |
JniIdentityHashCode |
ラップされたインスタンスの の |
JniManagedPeerState |
マネージド ピアの状態。 (継承元 IJavaPeerable) |
JniPeerMembers |
メンバー アクセスと呼び出しのサポート。 (継承元 IJavaPeerable) |
PeerReference |
JniObjectReferenceラップされた Java オブジェクト インスタンスの を返します。 (継承元 IJavaPeerable) |
メソッド
Disposed() |
インスタンスが破棄されたときに呼び出されます。 (継承元 IJavaPeerable) |
DisposeUnlessReferenced() |
このインスタンスへの未処理の参照がない場合は、 を呼び出 |
Finalized() |
インスタンスが終了したときに呼び出されます。 (継承元 IJavaPeerable) |
FormatTo(Formatter, FormatFlags, Int32, Int32) |
指定した を使用してオブジェクトの書式を設定 |
SetJniIdentityHashCode(Int32) |
によって返される値を |
SetJniManagedPeerState(JniManagedPeerStates) |
インターフェイスは |
SetPeerReference(JniObjectReference) |
によって返される値を |
UnregisterFromRuntime() |
ランタイムが今後 Java.Interop.JniRuntime+JniValueManager.PeekValue の呼び出しから返されないように、このインスタンスの登録を解除します。 (継承元 IJavaPeerable) |
拡張メソッド
JavaCast<TResult>(IJavaObject) |
Android ランタイムチェック型変換を実行します。 |
JavaCast<TResult>(IJavaObject) |
インターフェイスは |
GetJniTypeName(IJavaPeerable) |
インターフェイスは |