Langage

IFormattable Interface

Définition

L’interface Formattable doit être implémentée par n’importe quelle classe qui doit effectuer une mise en forme personnalisée à l’aide du 's' spécificateur de conversion de 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
Attributs
Implémente

Remarques

L’interface Formattable doit être implémentée par n’importe quelle classe qui doit effectuer une mise en forme personnalisée à l’aide du 's' spécificateur de conversion de java.util.Formatter. Cette interface permet un contrôle de base pour la mise en forme d’objets arbitraires.

Par exemple, la classe suivante imprime différentes représentations du nom d’un stock en fonction des indicateurs et des contraintes de longueur :

{@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);
                  }
              }
            }

Lorsqu’elle est utilisée conjointement avec la java.util.Formatterclasse ci-dessus, la sortie suivante est générée pour différentes chaînes de format.

{@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."
            }

Les tableaux de mise en forme ne sont pas nécessairement sécurisés pour l’accès multithread. La sécurité des threads est facultative et peut être appliquée par les classes qui étendent et implémentent cette interface.

Sauf indication contraire, le passage d’un null argument à une méthode de cette interface entraîne la levée d’un NullPointerException argument.

Ajouté à la version 1.5.

Documentation Java pour java.util.Formattable.

Les parties de cette page sont des modifications basées sur le travail créé et partagé par Android Open Source et utilisées en fonction des termes décrits dans la Creative Commons 2.5 Attribution License.

Propriétés

Nom Description
Handle

Obtient la valeur JNI de l’objet Android sous-jacent.

(Hérité de IJavaObject)
JniIdentityHashCode

Retourne la valeur de java.lang.System.identityHashCode() l’instance encapsulée.

(Hérité de IJavaPeerable)
JniManagedPeerState

État de l’homologue managé.

(Hérité de IJavaPeerable)
JniObjectReferenceControlBlock

L’interface Formattable doit être implémentée par n’importe quelle classe qui doit effectuer une mise en forme personnalisée à l’aide du 's' spécificateur de conversion de java.util.Formatter.

(Hérité de IJavaPeerable)
JniPeerMembers

Prise en charge de l’accès aux membres et de l’appel.

(Hérité de IJavaPeerable)
PeerReference

Retourne une JniObjectReference instance d’objet Java encapsulée.

(Hérité de IJavaPeerable)

Méthodes

Nom Description
Disposed()

Appelé lorsque l’instance a été supprimée.

(Hérité de IJavaPeerable)
DisposeUnlessReferenced()

S’il n’existe aucune référence en suspens à cette instance, les appels Dispose(); sinon, ne fait rien.

(Hérité de IJavaPeerable)
Finalized()

Appelé lorsque l’instance a été finalisée.

(Hérité de IJavaPeerable)
FormatTo(Formatter, FormatFlags, Int32, Int32)

Met en forme l’objet à l’aide du fichier fourni Formatter formatter.

SetJniIdentityHashCode(Int32)

Définissez la valeur retournée par JniIdentityHashCode.

(Hérité de IJavaPeerable)
SetJniManagedPeerState(JniManagedPeerStates)

L’interface Formattable doit être implémentée par n’importe quelle classe qui doit effectuer une mise en forme personnalisée à l’aide du 's' spécificateur de conversion de java.util.Formatter.

(Hérité de IJavaPeerable)
SetPeerReference(JniObjectReference)

Définissez la valeur retournée par PeerReference.

(Hérité de IJavaPeerable)
UnregisterFromRuntime()

Annulez l’inscription de cette instance afin que le runtime ne le retourne pas à partir d’appels futurs Java.Interop.JniRuntime+JniValueManager.PeekValue .

(Hérité de IJavaPeerable)

Méthodes d’extension

Nom Description
GetJniTypeName(IJavaPeerable)

Obtient le nom JNI du type de l’instance self.

JavaAs<TResult>(IJavaPeerable)

Essayez de forcer self le typeTResult, en vérifiant que le forçage est valide côté Java.

JavaCast<TResult>(IJavaObject)

Effectue une conversion de type vérifiée par le runtime Android.

JavaCast<TResult>(IJavaObject)

L’interface Formattable doit être implémentée par n’importe quelle classe qui doit effectuer une mise en forme personnalisée à l’aide du 's' spécificateur de conversion de java.util.Formatter.

TryJavaCast<TResult>(IJavaPeerable, TResult)

Essayez de forcer self le typeTResult, en vérifiant que le forçage est valide côté Java.

S’applique à