Share via


IFormattable 인터페이스

정의

인터페이스는 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 throw됩니다.

1.5에 추가되었습니다.

에 대한 Java 설명서입니다 java.util.Formattable.

이 페이지의 일부는 만들고 공유하며 에 설명된 조건에 따라 사용되는 작업을 기반으로 수정됩니다.

속성

Handle

기본 Android 개체의 JNI 값을 가져옵니다.

(다음에서 상속됨 IJavaObject)
JniIdentityHashCode

래핑된 instance 값을 반환 java.lang.System.identityHashCode() 합니다.

(다음에서 상속됨 IJavaPeerable)
JniManagedPeerState

관리되는 피어의 상태입니다.

(다음에서 상속됨 IJavaPeerable)
JniPeerMembers

멤버 액세스 및 호출 지원.

(다음에서 상속됨 IJavaPeerable)
PeerReference

JniObjectReference 래핑된 Java 개체 instance 의 를 반환합니다.

(다음에서 상속됨 IJavaPeerable)

메서드

Disposed()

instance 삭제될 때 호출됩니다.

(다음에서 상속됨 IJavaPeerable)
DisposeUnlessReferenced()

이 instance 대한 미해결 참조가 없으면 를 호출Dispose()합니다. 그렇지 않으면 아무 작업도 수행하지 않습니다.

(다음에서 상속됨 IJavaPeerable)
Finalized()

instance 완료될 때 호출됩니다.

(다음에서 상속됨 IJavaPeerable)
FormatTo(Formatter, FormatFlags, Int32, Int32)

제공된 를 사용하여 개체의 서식을 Formatter formatter지정합니다.

SetJniIdentityHashCode(Int32)

에서 반환 JniIdentityHashCode된 값을 설정합니다.

(다음에서 상속됨 IJavaPeerable)
SetJniManagedPeerState(JniManagedPeerStates)

인터페이스는 Formattable 의 변환 지정자를 java.util.Formatter사용하여 사용자 지정 서식을 수행해야 하는 모든 클래스에 's' 의해 구현되어야 합니다.

(다음에서 상속됨 IJavaPeerable)
SetPeerReference(JniObjectReference)

에서 반환 PeerReference된 값을 설정합니다.

(다음에서 상속됨 IJavaPeerable)
UnregisterFromRuntime()

런타임이 이후 Java.Interop.JniRuntime+JniValueManager.PeekValue 호출에서 반환되지 않도록 이 instance 등록을 취소합니다.

(다음에서 상속됨 IJavaPeerable)

확장 메서드

JavaCast<TResult>(IJavaObject)

Android 런타임 확인 형식 변환을 수행합니다.

JavaCast<TResult>(IJavaObject)

인터페이스는 Formattable 의 변환 지정자를 java.util.Formatter사용하여 사용자 지정 서식을 수행해야 하는 모든 클래스에 's' 의해 구현되어야 합니다.

GetJniTypeName(IJavaPeerable)

인터페이스는 Formattable 의 변환 지정자를 java.util.Formatter사용하여 사용자 지정 서식을 수행해야 하는 모든 클래스에 's' 의해 구현되어야 합니다.

적용 대상