Class DataFlavor

java.lang.Object
java.awt.datatransfer.DataFlavor
所有已实现的接口:
Externalizable, Serializable, Cloneable

public class DataFlavor extends Object implements Externalizable, Cloneable
DataFlavor提供有关数据的元信息。 DataFlavor通常用于访问剪贴板上的数据,或在拖放操作期间使用。

DataFlavor的一个实例封装了在RFC 2045RFC 2046中定义的内容类型。 内容类型通常被称为MIME类型。

内容类型由媒体类型(称为主类型)、子类型和可选参数组成。 有关MIME类型语法的详细信息,请参阅RFC 2045

JRE数据传输实现将MIME类型的参数“class”解释为表示类。 表示类反映了正在传输的对象的类。 换句话说,表示类是由Transferable.getTransferData(java.awt.datatransfer.DataFlavor)返回的对象类型。 例如,imageFlavor的MIME类型为"image/x-java-image;class=java.awt.Image",主类型为image,子类型为x-java-image,表示类为java.awt.Image。 当使用imageFlavorDataFlavor调用getTransferData时,将返回java.awt.Image的实例。 需要注意的是,DataFlavor不会针对表示类进行错误检查。 由于DataFlavor的使用者,如Transferable,要遵守表示类。
请注意,如果在创建DataFlavor时未指定表示类,则将使用默认表示类。 有关DataFlavor构造函数的适当文档,请参阅相应文档。

此外,具有“text”主MIME类型的DataFlavor实例可能具有“charset”参数。 有关“text”MIME类型和“charset”参数的详细信息,请参阅RFC 2046selectBestTextFlavor(java.awt.datatransfer.DataFlavor[])

DataFlavors的相等性由主类型、子类型和表示类确定。 有关详细信息,请参阅equals(DataFlavor)。 在确定相等性时,将忽略任何可选参数。 例如,以下代码会产生两个被视为相同的DataFlavors

   DataFlavor flavor1 = new DataFlavor(Object.class, "X-test/test; class=<java.lang.Object>; foo=bar");
   DataFlavor flavor2 = new DataFlavor(Object.class, "X-test/test; class=<java.lang.Object>; x=y");
   // 以下返回true。
   flavor1.equals(flavor2);
 
如上所述,flavor1flavor2被视为相同。 因此,向Transferable请求任一DataFlavor将返回相同的结果。

有关在Swing中使用数据传输的更多信息,请参阅如何使用拖放和数据传输,在Java教程中的部分。

自:
1.1
另请参阅:
  • Field Details

    • stringFlavor

      public static final DataFlavor stringFlavor
      代表Java Unicode String类的DataFlavor,其中:
           representationClass = java.lang.String
           mimeType            = "application/x-java-serialized-object"
       
    • imageFlavor

      public static final DataFlavor imageFlavor
      代表Java Image类的DataFlavor,其中:
           representationClass = java.awt.Image
           mimeType            = "image/x-java-image"
       
      如果java.awt.Image不可见,未加载java.desktop模块,或者java.desktop模块未包含在运行时映像中,则将为null
    • plainTextFlavor

      @Deprecated public static final DataFlavor plainTextFlavor
      Deprecated.
      as of 1.3. Use getReaderForText(java.awt.datatransfer.Transferable) instead of Transferable.getTransferData(DataFlavor.plainTextFlavor).
      代表使用Unicode编码的纯文本的DataFlavor,其中:
           representationClass = InputStream
           mimeType            = "text/plain; charset=unicode"
       
      这个DataFlavor已经被弃用,因为:
      • 它的表示是一个InputStream,一个基于8位的表示,而Unicode是一个16位字符集
      • 字符集"unicode"没有明确定义。"unicode"意味着特定平台对Unicode的实现,而不是跨平台实现
    • javaSerializedObjectMimeType

      public static final String javaSerializedObjectMimeType
      MIME内容类型为application/x-java-serialized-object表示已经持久化的Java对象图。

      与这个DataFlavor关联的表示类标识作为引用从调用java.awt.datatransfer.getTransferData返回的对象的Java类型。

      参见:
    • javaFileListFlavor

      public static final DataFlavor javaFileListFlavor
      为了在Java(和底层平台)之间传输文件列表,使用此类型/子类型和表示类为java.util.ListDataFlavor。列表的每个元素需要/保证是java.io.File类型。
    • javaJVMLocalObjectMimeType

      public static final String javaJVMLocalObjectMimeType
      为了在同一JVM内通过Transferable接口传输没有关联MIME内容类型的任意Java对象引用,使用具有此类型/子类型的DataFlavor,其representationClass等于通过Transferable传递的类/接口的类型。

      对于具有此MIME内容类型的DataFlavorTransferable.getTransferData返回的对象引用需要是DataFlavor的表示类的实例。

      参见:
    • javaRemoteObjectMimeType

      public static final String javaRemoteObjectMimeType
      通过拖放ACTION_LINK操作传递到远程对象的活动链接时,应使用application/x-java-remote-object的Mime内容类型,其中DataFlavor的表示类表示要传输的Remote接口的类型。
      参见:
    • selectionHtmlFlavor

      public static final DataFlavor selectionHtmlFlavor
      表示HTML标记的一部分。标记由源端选择的部分组成。因此,标记中的一些标签可能是不成对的。如果该flavor用于在Transferable实例中表示数据,则不会进行任何额外更改。此DataFlavor实例表示与不包含文档参数的DataFlavor实例相同的HTML标记,表示类为String类。
           representationClass = String
           mimeType            = "text/html"
       
      自:
      1.8
    • fragmentHtmlFlavor

      public static final DataFlavor fragmentHtmlFlavor
      表示HTML标记的一部分。如果可能,从本地系统接收的标记将补充成对标记,以成为格式良好的HTML标记。如果该flavor用于在Transferable实例中表示数据,则不会进行任何额外更改。
           representationClass = String
           mimeType            = "text/html"
       
      自:
      1.8
    • allHtmlFlavor

      public static final DataFlavor allHtmlFlavor
      表示HTML标记的一部分。如果可能,从本地系统接收的标记将补充额外标记,以构成格式良好的HTML文档。如果该flavor用于在Transferable实例中表示数据,则不会进行任何额外更改。
           representationClass = String
           mimeType            = "text/html"
       
      自:
      1.8
  • Constructor Details

    • DataFlavor

      public DataFlavor()
      构造一个新的DataFlavor。此构造函数仅用于支持Externalizable接口。不适用于公共(客户端)使用。
      自:
      1.2
    • DataFlavor

      public DataFlavor(Class<?> representationClass, String humanPresentableName)
      构造一个代表Java类的DataFlavor

      返回的DataFlavor将具有以下特征:

          representationClass = representationClass
          mimeType            = application/x-java-serialized-object
       
      参数:
      representationClass - 用于在此flavor中传输数据的类
      humanPresentableName - 用于标识此flavor的人类可读字符串;如果此参数为null,则使用MIME内容类型的值
      抛出:
      NullPointerException - 如果representationClassnull
    • DataFlavor

      public DataFlavor(String mimeType, String humanPresentableName)
      构造一个代表MimeTypeDataFlavor

      返回的DataFlavor将具有以下特征:

      如果mimeType为"application/x-java-serialized-object; class=<representation class>",则结果与调用new DataFlavor(Class.forName(<representation class>)相同。

      否则:

           representationClass = InputStream
           mimeType            = mimeType
       
      参数:
      mimeType - 用于标识此flavor的MIME类型的字符串;如果mimeType未指定"class="参数,或者类未成功加载,则抛出IllegalArgumentException
      humanPresentableName - 用于标识此flavor的人类可读字符串;如果此参数为null,则使用MIME内容类型的值
      抛出:
      IllegalArgumentException - 如果mimeType无效或类未成功加载
      NullPointerException - 如果mimeTypenull
    • DataFlavor

      public DataFlavor(String mimeType, String humanPresentableName, ClassLoader classLoader) throws ClassNotFoundException
      构造一个代表MimeTypeDataFlavor

      返回的DataFlavor将具有以下特征:

      如果mimeType为"application/x-java-serialized-object; class=<representation class>",则结果与调用new DataFlavor(Class.forName(<representation class>)相同。

      否则:

           representationClass = InputStream
           mimeType            = mimeType
       
      参数:
      mimeType - 用于标识此flavor的MIME类型的字符串
      humanPresentableName - 用于标识此flavor的人类可读字符串
      classLoader - 要使用的类加载器
      抛出:
      ClassNotFoundException - 如果类未加载
      IllegalArgumentException - 如果mimeType无效
      NullPointerException - 如果mimeTypenull
    • DataFlavor

      public DataFlavor(String mimeType) throws ClassNotFoundException
      mimeType字符串构造一个DataFlavor。该字符串可以指定一个"class=<完全指定的Java类名>"参数,以创建具有所需表示类的DataFlavor。如果字符串不包含"class="参数,则默认使用java.io.InputStream
      参数:
      mimeType - 用于标识此flavor的MIME类型的字符串;如果由"class="参数指定的类未成功加载,则抛出ClassNotFoundException
      抛出:
      ClassNotFoundException - 如果类未加载
      IllegalArgumentException - 如果mimeType无效
      NullPointerException - 如果mimeTypenull
  • Method Details

    • tryToLoadClass

      protected static final Class<?> tryToLoadClass(String className, ClassLoader fallback) throws ClassNotFoundException
      尝试从:引导加载器、系统加载器、上下文加载器(如果存在)和最后指定的加载器中加载类。
      参数:
      className - 要加载的类的名称
      fallback - 回退加载器
      返回:
      加载的类
      抛出:
      ClassNotFoundException - 如果未找到类
    • toString

      public String toString()
      DataFlavor及其参数的字符串表示。结果的String包含DataFlavor类的名称、此flavor的MIME类型和其表示类。如果此flavor的主要MIME类型为"text",支持charset参数,并具有编码表示,则还包括flavor的charset。有关支持charset参数的文本flavor列表,请参见selectBestTextFlavor
      覆盖:
      toString 在类 Object
      返回:
      DataFlavor的字符串表示
      参见:
    • getTextPlainUnicodeFlavor

      public static final DataFlavor getTextPlainUnicodeFlavor()
      返回一个表示使用Unicode编码的纯文本的DataFlavor,其中:
           representationClass = java.io.InputStream
           mimeType            = "text/plain;
                                  charset=<platform default Unicode encoding>"
       
      实现注意事项:
      Oracle在Microsoft Windows和macOS上的实现使用编码utf-16le。Oracle在Solaris和Linux上的实现使用编码iso-10646-ucs-2
      返回:
      一个表示使用Unicode编码的纯文本的DataFlavor
      自版本:
      1.3
    • selectBestTextFlavor

      public static final DataFlavor selectBestTextFlavor(DataFlavor[] availableFlavors)
      从一组DataFlavor中选择最佳的文本DataFlavor。仅考虑DataFlavor.stringFlavor和等效的flavors,以及具有主要MIME类型为"text"的flavors。

      首先按照它们的MIME类型按以下顺序对flavors进行排序:

      • "text/sgml"
      • "text/xml"
      • "text/html"
      • "text/rtf"
      • "text/enriched"
      • "text/richtext"
      • "text/uri-list"
      • "text/tab-separated-values"
      • "text/t140"
      • "text/rfc822-headers"
      • "text/parityfec"
      • "text/directory"
      • "text/css"
      • "text/calendar"
      • "application/x-java-serialized-object"
      • "text/plain"
      • "text/<other>"

      例如,"text/sgml"将优先于"text/html",DataFlavor.stringFlavor将优先于DataFlavor.plainTextFlavor

      如果数组中有两个或更多flavors共享最佳的MIME类型,则将检查该MIME类型以查看它是否支持charset参数。

      以下MIME类型支持或被视为支持charset参数:

      • "text/sgml"
      • "text/xml"
      • "text/html"
      • "text/enriched"
      • "text/richtext"
      • "text/uri-list"
      • "text/directory"
      • "text/css"
      • "text/calendar"
      • "application/x-java-serialized-object"
      • "text/plain"
      以下MIME类型不支持或被视为不支持charset参数:
      • "text/rtf"
      • "text/tab-separated-values"
      • "text/t140"
      • "text/rfc822-headers"
      • "text/parityfec"
      对于"text/<other>" MIME类型,JRE第一次需要确定MIME类型是否支持charset参数时,将检查参数是否明确列在使用该MIME类型的任意选择的DataFlavor中。如果是,则JRE将从那一点开始假定MIME类型支持charset参数,并且不会再次检查。如果参数没有明确列出,则JRE将从那一点开始假定MIME类型不支持charset参数,并且不会再次检查。因为此检查是在任意选择的DataFlavor上执行的,开发人员必须确保所有具有"text/<other>" MIME类型的DataFlavor如果该MIME类型支持,则指定charset参数。开发人员不应依赖JRE将平台的默认charset替换为"text/<other>" DataFlavor。不遵守此限制将导致未定义的行为。

      如果数组中最佳的MIME类型不支持charset参数,则共享该MIME类型的flavors将按照以下顺序按其表示类进行排序:java.io.InputStreamjava.nio.ByteBuffer[B,<所有其他>。

      如果两个或更多flavors共享最佳表示类,或者如果没有一个flavor具有三个指定表示中的一个,则将非确定性地选择其中一个flavor。

      如果数组中最佳的MIME类型支持charset参数,则共享该MIME类型的flavors将按照以下顺序按其表示类进行排序:java.io.Readerjava.lang.Stringjava.nio.CharBuffer[C,<所有其他>。

      如果两个或更多flavors共享最佳表示类,并且该表示是四个明确列出的表示之一,则将非确定性地选择其中一个flavor。但是,如果没有一个flavor具有四个指定表示中的一个,则flavors将按其字符集进行排序。Unicode字符集,如"UTF-16","UTF-8","UTF-16BE","UTF-16LE"及其别名,被认为是最佳的。之后选择平台默认字符集及其别名。"US-ASCII"及其别名是最差的。所有其他字符集按字母顺序选择,但只有此Java平台实现支持的字符集将被考虑。

      如果两个或更多flavors共享最佳字符集,则flavors将再次按其表示类按以下顺序进行排序:java.io.InputStreamjava.nio.ByteBuffer[B,<所有其他>。

      如果两个或更多flavors共享最佳表示类,或者如果没有一个flavor具有三个指定表示中的一个,则将非确定性地选择其中一个flavor。

      参数:
      availableFlavors - 一个可用的DataFlavor数组
      返回:
      根据上述规则返回最佳(最高保真度)flavor,如果availableFlavorsnull,长度为零,或不包含文本flavor,则返回null
      自版本:
      1.3
    • getReaderForText

      public Reader getReaderForText(Transferable transferable) throws UnsupportedFlavorException, IOException
      获取文本flavor的Reader,必要时解码为预期的字符集(编码)。支持的表示类包括java.io.Readerjava.lang.Stringjava.nio.CharBuffer[Cjava.io.InputStreamjava.nio.ByteBuffer[B

      因为不支持charset参数的文本flavor以非标准格式编码,所以不应该为这样的flavor调用此方法。但是,为了保持向后兼容性,如果为这样的flavor调用此方法,则此方法将视为该flavor支持charset参数,并尝试相应地解码。请参阅selectBestTextFlavor以获取不支持charset参数的文本flavor列表。

      参数:
      transferable - 将请求其数据的Transferable
      返回:
      用于读取Transferable数据的Reader
      抛出:
      IllegalArgumentException - 如果表示类不是上述七个之一
      IllegalArgumentException - 如果Transferable具有null数据
      NullPointerException - 如果Transferablenull
      UnsupportedEncodingException - 如果此flavor的表示是java.io.InputStreamjava.nio.ByteBuffer[B,并且此flavor的编码不受此Java平台实现支持
      UnsupportedFlavorException - 如果Transferable不支持此flavor
      IOException - 如果由于I/O错误而无法读取数据
      自版本:
      1.3
      参见:
    • getMimeType

      public String getMimeType()
      返回此DataFlavor的MIME类型字符串。
      返回:
      此flavor的MIME类型字符串
    • getRepresentationClass

      public Class<?> getRepresentationClass()
      返回支持此DataFlavor的对象在请求此DataFlavor时将返回的Class
      返回:
      支持此DataFlavor的对象在请求此DataFlavor时将返回的Class
    • getHumanPresentableName

      public String getHumanPresentableName()
      返回此DataFlavor表示的数据格式的人类可读名称。此名称将针对不同国家/地区进行本地化。
      返回:
      DataFlavor表示的数据格式的人类可读名称
    • getPrimaryType

      public String getPrimaryType()
      返回此DataFlavor的主要MIME类型。
      返回:
      DataFlavor的主要MIME类型
    • getSubType

      public String getSubType()
      返回此DataFlavor的子MIME类型。
      返回:
      DataFlavor的子MIME类型
    • getParameter

      public String getParameter(String paramName)
      如果paramName等于"humanPresentableName",则返回此DataFlavor的人类可读名称。否则返回与paramName关联的MIME类型值。
      参数:
      paramName - 请求的参数名称
      返回:
      名称参数的值,如果没有关联值,则返回null
    • setHumanPresentableName

      public void setHumanPresentableName(String humanPresentableName)
      设置此DataFlavor表示的数据格式的人类可读名称。此名称将针对不同国家/地区进行本地化。
      参数:
      humanPresentableName - 新的人类可读名称
    • equals

      public boolean equals(Object o)
      表示某个对象是否与此对象相等。

      equals方法在非空对象引用上实现了等价关系:

      • 它是自反的:对于任何非空引用值xx.equals(x)应返回true
      • 它是对称的:对于任何非空引用值xy,只有当x.equals(y)返回true时,y.equals(x)才应返回true
      • 它是传递的:对于任何非空引用值xyz,如果x.equals(y)返回truey.equals(z)返回true,则x.equals(z)应返回true
      • 它是一致的:对于任何非空引用值xy,对对象进行多次调用x.equals(y)应一致地返回true或一致地返回false,前提是在对象上用于equals比较的任何信息未被修改。
      • 对于任何非空引用值xx.equals(null)应返回false

      等价关系将其操作的元素划分为等价类;等价类的所有成员彼此相等。等价类的成员可以互相替代,至少对于某些目的而言是这样。

      DataFlavor类的equals比较实现如下:仅当两个DataFlavor的MIME主类型、子类型和表示类相等时,它们才被视为相等。此外,如果主类型为"text",子类型表示支持charset参数的文本类型,并且表示类不是java.io.Readerjava.lang.Stringjava.nio.CharBuffer[C,则charset参数也必须相等。如果未明确为一个或两个DataFlavor指定了字符集,则假定为平台默认编码。请参阅selectBestTextFlavor以获取支持charset参数的文本类型列表。

      覆盖:
      equals 在类中的 Object
      参数:
      o - 与this比较的Object
      返回:
      如果that等同于此DataFlavor,则返回true;否则返回false
      另请参阅:
    • equals

      public boolean equals(DataFlavor that)
      此方法与equals(Object)具有相同的行为。唯一的区别在于它将DataFlavor实例作为参数。
      参数:
      that - 与this比较的DataFlavor
      返回:
      如果that等同于此DataFlavor,则返回true;否则返回false
      另请参阅:
    • equals

      @Deprecated public boolean equals(String s)
      Deprecated.
      As inconsistent with hashCode() contract, use isMimeTypeEqual(String) instead.
      仅比较mimeType与传入的String,不考虑representationClass。如果需要比较representationClass,则可以使用equals(new DataFlavor(s))
      参数:
      s - 要比较的mimeType
      返回:
      如果字符串(MimeType)相等,则返回true;否则返回false或如果snull则返回false
    • hashCode

      public int hashCode()
      返回此DataFlavor的哈希码。对于两个相等的DataFlavor,哈希码是相等的。对于与DataFlavor.equals(String)匹配的String,不能保证DataFlavor的哈希码等于String的哈希码。
      覆盖:
      hashCode 在类中的 Object
      返回:
      DataFlavor的哈希码
      另请参阅:
    • match

      public boolean match(DataFlavor that)
      equals(DataFlavor)相同。
      参数:
      that - 与this比较的DataFlavor
      返回:
      如果that等同于此DataFlavor,则返回true;否则返回false
      自1.3起
      另请参阅:
    • isMimeTypeEqual

      public boolean isMimeTypeEqual(String mimeType)
      返回传入的MIME类型的字符串表示是否等同于此DataFlavor的MIME类型。不包括参数在比较中。
      参数:
      mimeType - MIME类型的字符串表示
      返回:
      如果传入的MIME类型的字符串表示等同于此DataFlavor的MIME类型,则返回true;否则返回false
      抛出:
      NullPointerException - 如果mimeType为null
    • isMimeTypeEqual

      public final boolean isMimeTypeEqual(DataFlavor dataFlavor)
      比较两个DataFlavor对象的mimeType。不考虑参数。
      参数:
      dataFlavor - 要比较的DataFlavor
      返回:
      如果MimeType相等,则返回true;否则返回false
    • isMimeTypeSerializedObject

      public boolean isMimeTypeSerializedObject()
      DataFlavor是否表示序列化对象?
      返回:
      是否表示序列化对象
    • getDefaultRepresentationClass

      public final Class<?> getDefaultRepresentationClass()
      返回默认表示类。
      返回:
      默认表示类
    • getDefaultRepresentationClassAsString

      public final String getDefaultRepresentationClassAsString()
      返回默认表示类的名称。
      返回:
      默认表示类的名称
    • isRepresentationClassInputStream

      public boolean isRepresentationClassInputStream()
      DataFlavor是否表示java.io.InputStream
      返回:
      是否表示java.io.InputStream
    • isRepresentationClassReader

      public boolean isRepresentationClassReader()
      返回此DataFlavor的表示类是否为java.io.Reader或其子类。
      返回:
      表示类是否为java.io.Reader或其子类
      自1.4起
    • isRepresentationClassCharBuffer

      public boolean isRepresentationClassCharBuffer()
      返回此DataFlavor的表示类是否为java.nio.CharBuffer或其子类。
      返回:
      表示类是否为java.nio.CharBuffer或其子类
      自1.4起
    • isRepresentationClassByteBuffer

      public boolean isRepresentationClassByteBuffer()
      返回此DataFlavor的表示类是否为java.nio.ByteBuffer或其子类。
      返回:
      表示类是否为java.nio.ByteBuffer或其子类
      自1.4起
    • isRepresentationClassSerializable

      public boolean isRepresentationClassSerializable()
      如果表示类可以序列化,则返回true
      返回:
      如果表示类可以序列化,则返回true
    • isRepresentationClassRemote

      public boolean isRepresentationClassRemote()
      如果表示类为Remote,则返回true
      返回:
      如果表示类为Remote,则返回true
    • isFlavorSerializedObjectType

      public boolean isFlavorSerializedObjectType()
      如果指定的DataFlavor表示序列化对象,则返回true
      返回:
      如果指定的DataFlavor表示序列化对象,则返回true
    • isFlavorRemoteObjectType

      public boolean isFlavorRemoteObjectType()
      如果指定的DataFlavor表示远程对象,则返回true
      返回:
      如果指定的DataFlavor表示远程对象,则返回true
    • isFlavorJavaFileListType

      public boolean isFlavorJavaFileListType()
      如果指定的DataFlavor表示文件对象列表,则返回true
      返回:
      如果指定的DataFlavor表示java.util.Listjava.io.File对象,则返回true
    • isFlavorTextType

      public boolean isFlavorTextType()
      返回此Java平台实现的DataFlavor是否是有效的文本 flavor。只有等同于DataFlavor.stringFlavor和主要MIME类型为"text"的flavor才能是有效的文本 flavor。

      如果此flavor支持charset参数,则必须等同于DataFlavor.stringFlavor,或其表示必须是java.io.Readerjava.lang.Stringjava.nio.CharBuffer[Cjava.io.InputStreamjava.nio.ByteBuffer[B。如果表示是java.io.InputStreamjava.nio.ByteBuffer[B,则此flavor的charset参数必须受到Java平台此实现的支持。如果未指定charset,则假定为平台默认charset,该charset始终受支持。

      如果此flavor不支持charset参数,则其表示必须是java.io.InputStreamjava.nio.ByteBuffer[B

      查看selectBestTextFlavor以获取支持charset参数的文本flavor列表。

      返回:
      如果此DataFlavor符合上述有效文本flavor的描述,则返回true;否则返回false
      自版本:
      1.4
      另请参阅:
    • writeExternal

      public void writeExternal(ObjectOutput os) throws IOException
      序列化此DataFlavor
      指定者:
      writeExternal 在接口 Externalizable
      参数:
      os - 要将对象写入的流
      抛出:
      IOException - 包括可能发生的任何I/O异常
    • readExternal

      public void readExternal(ObjectInput is) throws IOException, ClassNotFoundException
      从序列化状态恢复此DataFlavor
      指定者:
      readExternal 在接口 Externalizable
      参数:
      is - 用于从中读取数据以恢复对象的流
      抛出:
      IOException - 如果发生I/O错误
      ClassNotFoundException - 如果找不到要恢复的对象的类
    • clone

      public Object clone() throws CloneNotSupportedException
      返回此DataFlavor的克隆。
      覆盖:
      clone 在类 Object
      返回:
      DataFlavor的克隆
      抛出:
      CloneNotSupportedException - 如果对象的类不支持Cloneable接口。覆盖clone方法的子类也可以抛出此异常,以指示无法克隆实例。
      另请参阅:
    • normalizeMimeTypeParameter

      @Deprecated protected String normalizeMimeTypeParameter(String parameterName, String parameterValue)
      Deprecated.
      This method is never invoked by this implementation from 1.1 onwards
      对每个MIME类型参数调用DataFlavor,以允许DataFlavor子类处理特殊参数,如text/plain的charset参数,其值不区分大小写。(MIME类型参数值应区分大小写。)

      对每个参数名称/值对调用此方法,并应返回parameterValue的规范化表示。

      参数:
      parameterName - 参数名称
      parameterValue - 参数值
      返回:
      参数值
    • normalizeMimeType

      @Deprecated protected String normalizeMimeType(String mimeType)
      Deprecated.
      This method is never invoked by this implementation from 1.1 onwards
      对每个MIME类型字符串调用以让DataFlavor子类型有机会更改如何完成MIME类型的规范化。一个可能的用途是在传入的MIME类型字符串中没有出现参数/值对的情况下添加默认参数/值对。
      参数:
      mimeType - MIME类型
      返回:
      MIME类型