- 所有已实现的接口:
-
Externalizable
,Serializable
,Cloneable
DataFlavor
提供有关数据的元信息。 DataFlavor
通常用于访问剪贴板上的数据,或在拖放操作期间使用。
DataFlavor
的一个实例封装了在RFC 2045和RFC 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
。 当使用imageFlavor
的DataFlavor
调用getTransferData
时,将返回java.awt.Image
的实例。 需要注意的是,DataFlavor
不会针对表示类进行错误检查。 由于DataFlavor
的使用者,如Transferable
,要遵守表示类。
请注意,如果在创建DataFlavor
时未指定表示类,则将使用默认表示类。 有关DataFlavor
构造函数的适当文档,请参阅相应文档。
此外,具有“text”主MIME类型的DataFlavor
实例可能具有“charset”参数。 有关“text”MIME类型和“charset”参数的详细信息,请参阅RFC 2046和selectBestTextFlavor(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);如上所述,
flavor1
和flavor2
被视为相同。 因此,向Transferable
请求任一DataFlavor
将返回相同的结果。
有关在Swing中使用数据传输的更多信息,请参阅如何使用拖放和数据传输,在Java教程中的部分。
- 自:
- 1.1
- 另请参阅:
-
Field Summary
Modifier and TypeFieldDescriptionstatic final DataFlavor
表示HTML标记的一部分。static final DataFlavor
表示HTML标记的一部分。static final DataFlavor
代表Java Image类的DataFlavor
,其中:static final DataFlavor
为了在Java(和底层平台)之间传输文件列表,使用此类型/子类型和表示类为java.util.List
的DataFlavor
。static final String
为了在同一JVM内通过Transferable
接口传递没有关联MIME内容类型的任意Java对象引用,使用此类型/子类型的DataFlavor
,表示类等于通过Transferable
传递的类/接口的类型。static final String
为了通过拖放ACTION_LINK
操作传递到远程对象的实时链接,应使用application/x-java-remote-object的Mime内容类型,其中DataFlavor
的表示类表示要传输的Remote
接口的类型。static final String
application/x-java-serialized-object的MIME内容类型表示已持久化的Java对象图。static final DataFlavor
已弃用。从1.3版本开始。static final DataFlavor
表示HTML标记的一部分。static final DataFlavor
代表Java Unicode String类的DataFlavor
,其中: -
Constructor Summary
ConstructorDescription构造一个新的DataFlavor
。DataFlavor
(Class<?> representationClass, String humanPresentableName) 构造一个代表Java类的DataFlavor
。DataFlavor
(String mimeType) 从mimeType
字符串构造一个DataFlavor
。DataFlavor
(String mimeType, String humanPresentableName) 构造一个代表MimeType
的DataFlavor
。DataFlavor
(String mimeType, String humanPresentableName, ClassLoader classLoader) 构造一个代表MimeType
的DataFlavor
。 -
Method Summary
Modifier and TypeMethodDescriptionclone()
返回此DataFlavor
的克隆。boolean
equals
(DataFlavor that) 此方法与equals(Object)
具有相同的行为。boolean
指示某个其他对象是否“等于”此对象。boolean
已弃用。从1.1版本开始,此方法不会被此实现调用final Class
<?> 返回默认表示类。final String
返回默认表示类的名称。返回此DataFlavor
表示的数据格式的人类可读名称。返回此DataFlavor
的MIME类型字符串。getParameter
(String paramName) 如果paramName
等于“humanPresentableName”,则返回此DataFlavor
的人类可读名称。返回此DataFlavor
的主MIME类型。getReaderForText
(Transferable transferable) 获取文本格式的Reader,必要时进行解码以获取预期的字符集(编码)。Class
<?> 返回支持此DataFlavor
的对象将在请求此DataFlavor
时返回的Class
。返回此DataFlavor
的子MIME类型。static final DataFlavor
返回表示具有Unicode编码的纯文本的DataFlavor
,其中:int
hashCode()
返回此DataFlavor
的哈希码。boolean
如果指定的DataFlavor
表示文件对象列表,则返回true
。boolean
如果指定的DataFlavor
表示远程对象,则返回true
。boolean
如果指定的DataFlavor
表示序列化对象,则返回true
。boolean
返回此DataFlavor
是否为此Java平台实现的有效文本格式。final boolean
isMimeTypeEqual
(DataFlavor dataFlavor) 比较两个DataFlavor
对象的。 boolean
isMimeTypeEqual
(String mimeType) 返回传入的MIME类型的字符串表示是否等同于此DataFlavor
的MIME类型。boolean
DataFlavor
是否表示序列化对象?boolean
返回此DataFlavor
的表示类是否为java.nio.ByteBuffer
或其子类。boolean
返回此DataFlavor
的表示类是否为java.nio.CharBuffer
或其子类。boolean
DataFlavor
是否表示java.io.InputStream
?boolean
返回此DataFlavor
的表示类是否为java.io.Reader
或其子类。boolean
如果表示类为Remote
,则返回true
。boolean
如果表示类可以被序列化,则返回true
。boolean
match
(DataFlavor that) protected String
normalizeMimeType
(String mimeType) 已弃用。从1.1版本开始,此方法不会被此实现调用protected String
normalizeMimeTypeParameter
(String parameterName, String parameterValue) 已弃用。从1.1版本开始,此方法不会被此实现调用void
从序列化状态中恢复此DataFlavor
。static final DataFlavor
selectBestTextFlavor
(DataFlavor[] availableFlavors) 从DataFlavor
数组中选择最佳的文本DataFlavor
。void
setHumanPresentableName
(String humanPresentableName) 设置此DataFlavor
表示的数据格式的人类可读名称。toString()
此DataFlavor
及其参数的字符串表示。protected static final Class
<?> tryToLoadClass
(String className, ClassLoader fallback) 尝试从:引导加载程序、系统加载程序、上下文加载程序(如果存在)和最后指定的加载程序中加载类。void
序列化此DataFlavor
。
-
Field Details
-
stringFlavor
代表Java Unicode String类的DataFlavor
,其中:representationClass = java.lang.String mimeType = "application/x-java-serialized-object"
-
imageFlavor
代表Java Image类的DataFlavor
,其中:representationClass = java.awt.Image mimeType = "image/x-java-image"
如果java.awt.Image
不可见,未加载java.desktop
模块,或者java.desktop
模块未包含在运行时映像中,则将为null
。 -
plainTextFlavor
Deprecated.as of 1.3. UsegetReaderForText(java.awt.datatransfer.Transferable)
instead ofTransferable.getTransferData(DataFlavor.plainTextFlavor)
.代表使用Unicode编码的纯文本的DataFlavor
,其中:representationClass = InputStream mimeType = "text/plain; charset=unicode"
这个DataFlavor
已经被弃用,因为:- 它的表示是一个InputStream,一个基于8位的表示,而Unicode是一个16位字符集
- 字符集"unicode"没有明确定义。"unicode"意味着特定平台对Unicode的实现,而不是跨平台实现
-
javaSerializedObjectMimeType
MIME内容类型为application/x-java-serialized-object表示已经持久化的Java对象图。与这个
DataFlavor
关联的表示类标识作为引用从调用java.awt.datatransfer.getTransferData
返回的对象的Java类型。- 参见:
-
javaFileListFlavor
为了在Java(和底层平台)之间传输文件列表,使用此类型/子类型和表示类为java.util.List
的DataFlavor
。列表的每个元素需要/保证是java.io.File
类型。 -
javaJVMLocalObjectMimeType
为了在同一JVM内通过Transferable
接口传输没有关联MIME内容类型的任意Java对象引用,使用具有此类型/子类型的DataFlavor
,其representationClass
等于通过Transferable
传递的类/接口的类型。对于具有此MIME内容类型的
DataFlavor
从Transferable.getTransferData
返回的对象引用需要是DataFlavor
的表示类的实例。- 参见:
-
javaRemoteObjectMimeType
通过拖放ACTION_LINK
操作传递到远程对象的活动链接时,应使用application/x-java-remote-object的Mime内容类型,其中DataFlavor
的表示类表示要传输的Remote
接口的类型。- 参见:
-
selectionHtmlFlavor
表示HTML标记的一部分。标记由源端选择的部分组成。因此,标记中的一些标签可能是不成对的。如果该flavor用于在Transferable
实例中表示数据,则不会进行任何额外更改。此DataFlavor实例表示与不包含文档参数的DataFlavor实例相同的HTML标记,表示类为String类。representationClass = String mimeType = "text/html"
- 自:
- 1.8
-
fragmentHtmlFlavor
表示HTML标记的一部分。如果可能,从本地系统接收的标记将补充成对标记,以成为格式良好的HTML标记。如果该flavor用于在Transferable
实例中表示数据,则不会进行任何额外更改。representationClass = String mimeType = "text/html"
- 自:
- 1.8
-
allHtmlFlavor
表示HTML标记的一部分。如果可能,从本地系统接收的标记将补充额外标记,以构成格式良好的HTML文档。如果该flavor用于在Transferable
实例中表示数据,则不会进行任何额外更改。representationClass = String mimeType = "text/html"
- 自:
- 1.8
-
-
Constructor Details
-
DataFlavor
public DataFlavor()构造一个新的DataFlavor
。此构造函数仅用于支持Externalizable
接口。不适用于公共(客户端)使用。- 自:
- 1.2
-
DataFlavor
构造一个代表Java类的DataFlavor
。返回的
DataFlavor
将具有以下特征:representationClass = representationClass mimeType = application/x-java-serialized-object
- 参数:
-
representationClass
- 用于在此flavor中传输数据的类 -
humanPresentableName
- 用于标识此flavor的人类可读字符串;如果此参数为null
,则使用MIME内容类型的值 - 抛出:
-
NullPointerException
- 如果representationClass
为null
-
DataFlavor
构造一个代表MimeType
的DataFlavor
。返回的
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
- 如果mimeType
为null
-
DataFlavor
public DataFlavor(String mimeType, String humanPresentableName, ClassLoader classLoader) throws ClassNotFoundException 构造一个代表MimeType
的DataFlavor
。返回的
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
- 如果mimeType
为null
-
DataFlavor
从mimeType
字符串构造一个DataFlavor
。该字符串可以指定一个"class=<完全指定的Java类名>"参数,以创建具有所需表示类的DataFlavor
。如果字符串不包含"class="参数,则默认使用java.io.InputStream
。- 参数:
-
mimeType
- 用于标识此flavor的MIME类型的字符串;如果由"class="参数指定的类未成功加载,则抛出ClassNotFoundException
- 抛出:
-
ClassNotFoundException
- 如果类未加载 -
IllegalArgumentException
- 如果mimeType
无效 -
NullPointerException
- 如果mimeType
为null
-
-
Method Details
-
tryToLoadClass
protected static final Class<?> tryToLoadClass(String className, ClassLoader fallback) throws ClassNotFoundException 尝试从:引导加载器、系统加载器、上下文加载器(如果存在)和最后指定的加载器中加载类。- 参数:
-
className
- 要加载的类的名称 -
fallback
- 回退加载器 - 返回:
- 加载的类
- 抛出:
-
ClassNotFoundException
- 如果未找到类
-
toString
此DataFlavor
及其参数的字符串表示。结果的String
包含DataFlavor
类的名称、此flavor的MIME类型和其表示类。如果此flavor的主要MIME类型为"text",支持charset参数,并具有编码表示,则还包括flavor的charset。有关支持charset参数的文本flavor列表,请参见selectBestTextFlavor
。 -
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
从一组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"
- "text/rtf"
- "text/tab-separated-values"
- "text/t140"
- "text/rfc822-headers"
- "text/parityfec"
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.InputStream
,java.nio.ByteBuffer
,[B
,<所有其他>。如果两个或更多flavors共享最佳表示类,或者如果没有一个flavor具有三个指定表示中的一个,则将非确定性地选择其中一个flavor。
如果数组中最佳的MIME类型支持charset参数,则共享该MIME类型的flavors将按照以下顺序按其表示类进行排序:
java.io.Reader
,java.lang.String
,java.nio.CharBuffer
,[C
,<所有其他>。如果两个或更多flavors共享最佳表示类,并且该表示是四个明确列出的表示之一,则将非确定性地选择其中一个flavor。但是,如果没有一个flavor具有四个指定表示中的一个,则flavors将按其字符集进行排序。Unicode字符集,如"UTF-16","UTF-8","UTF-16BE","UTF-16LE"及其别名,被认为是最佳的。之后选择平台默认字符集及其别名。"US-ASCII"及其别名是最差的。所有其他字符集按字母顺序选择,但只有此Java平台实现支持的字符集将被考虑。
如果两个或更多flavors共享最佳字符集,则flavors将再次按其表示类按以下顺序进行排序:
java.io.InputStream
,java.nio.ByteBuffer
,[B
,<所有其他>。如果两个或更多flavors共享最佳表示类,或者如果没有一个flavor具有三个指定表示中的一个,则将非确定性地选择其中一个flavor。
- 参数:
-
availableFlavors
- 一个可用的DataFlavor
数组 - 返回:
-
根据上述规则返回最佳(最高保真度)flavor,如果
availableFlavors
为null
,长度为零,或不包含文本flavor,则返回null
- 自版本:
- 1.3
-
getReaderForText
public Reader getReaderForText(Transferable transferable) throws UnsupportedFlavorException, IOException 获取文本flavor的Reader,必要时解码为预期的字符集(编码)。支持的表示类包括java.io.Reader
,java.lang.String
,java.nio.CharBuffer
,[C
,java.io.InputStream
,java.nio.ByteBuffer
和[B
。因为不支持charset参数的文本flavor以非标准格式编码,所以不应该为这样的flavor调用此方法。但是,为了保持向后兼容性,如果为这样的flavor调用此方法,则此方法将视为该flavor支持charset参数,并尝试相应地解码。请参阅
selectBestTextFlavor
以获取不支持charset参数的文本flavor列表。- 参数:
-
transferable
- 将请求其数据的Transferable
- 返回:
-
用于读取
Transferable
数据的Reader
- 抛出:
-
IllegalArgumentException
- 如果表示类不是上述七个之一 -
IllegalArgumentException
- 如果Transferable
具有null
数据 -
NullPointerException
- 如果Transferable
为null
-
UnsupportedEncodingException
- 如果此flavor的表示是java.io.InputStream
,java.nio.ByteBuffer
或[B
,并且此flavor的编码不受此Java平台实现支持 -
UnsupportedFlavorException
- 如果Transferable
不支持此flavor -
IOException
- 如果由于I/O错误而无法读取数据 - 自版本:
- 1.3
- 参见:
-
getMimeType
返回此DataFlavor
的MIME类型字符串。- 返回:
- 此flavor的MIME类型字符串
-
getRepresentationClass
返回支持此DataFlavor
的对象在请求此DataFlavor
时将返回的Class
。- 返回:
-
支持此
DataFlavor
的对象在请求此DataFlavor
时将返回的Class
-
getHumanPresentableName
返回此DataFlavor
表示的数据格式的人类可读名称。此名称将针对不同国家/地区进行本地化。- 返回:
-
此
DataFlavor
表示的数据格式的人类可读名称
-
getPrimaryType
返回此DataFlavor
的主要MIME类型。- 返回:
-
此
DataFlavor
的主要MIME类型
-
getSubType
返回此DataFlavor
的子MIME类型。- 返回:
-
此
DataFlavor
的子MIME类型
-
getParameter
如果paramName
等于"humanPresentableName",则返回此DataFlavor
的人类可读名称。否则返回与paramName
关联的MIME类型值。- 参数:
-
paramName
- 请求的参数名称 - 返回:
-
名称参数的值,如果没有关联值,则返回
null
-
setHumanPresentableName
设置此DataFlavor
表示的数据格式的人类可读名称。此名称将针对不同国家/地区进行本地化。- 参数:
-
humanPresentableName
- 新的人类可读名称
-
equals
表示某个对象是否与此对象相等。equals
方法在非空对象引用上实现了等价关系:- 它是自反的:对于任何非空引用值
x
,x.equals(x)
应返回true
。 - 它是对称的:对于任何非空引用值
x
和y
,只有当x.equals(y)
返回true
时,y.equals(x)
才应返回true
。 - 它是传递的:对于任何非空引用值
x
,y
和z
,如果x.equals(y)
返回true
且y.equals(z)
返回true
,则x.equals(z)
应返回true
。 - 它是一致的:对于任何非空引用值
x
和y
,对对象进行多次调用x.equals(y)
应一致地返回true
或一致地返回false
,前提是在对象上用于equals
比较的任何信息未被修改。 - 对于任何非空引用值
x
,x.equals(null)
应返回false
。
等价关系将其操作的元素划分为等价类;等价类的所有成员彼此相等。等价类的成员可以互相替代,至少对于某些目的而言是这样。
DataFlavor
类的equals比较实现如下:仅当两个DataFlavor
的MIME主类型、子类型和表示类相等时,它们才被视为相等。此外,如果主类型为"text",子类型表示支持charset参数的文本类型,并且表示类不是java.io.Reader
、java.lang.String
、java.nio.CharBuffer
或[C
,则charset
参数也必须相等。如果未明确为一个或两个DataFlavor
指定了字符集,则假定为平台默认编码。请参阅selectBestTextFlavor
以获取支持charset参数的文本类型列表。 - 它是自反的:对于任何非空引用值
-
equals
此方法与equals(Object)
具有相同的行为。唯一的区别在于它将DataFlavor
实例作为参数。- 参数:
-
that
- 与this
比较的DataFlavor
- 返回:
-
如果
that
等同于此DataFlavor
,则返回true
;否则返回false
- 另请参阅:
-
equals
Deprecated.As inconsistent withhashCode()
contract, useisMimeTypeEqual(String)
instead.仅比较mimeType
与传入的String
,不考虑representationClass
。如果需要比较representationClass
,则可以使用equals(new DataFlavor(s))
。- 参数:
-
s
- 要比较的mimeType
- 返回:
-
如果字符串(MimeType)相等,则返回
true
;否则返回false
或如果s
为null
则返回false
-
hashCode
public int hashCode()返回此DataFlavor
的哈希码。对于两个相等的DataFlavor
,哈希码是相等的。对于与DataFlavor.equals(String)
匹配的String
,不能保证DataFlavor
的哈希码等于String
的哈希码。 -
match
- 参数:
-
that
- 与this
比较的DataFlavor
- 返回:
-
如果
that
等同于此DataFlavor
,则返回true
;否则返回false
- 自1.3起
- 另请参阅:
-
isMimeTypeEqual
返回传入的MIME类型的字符串表示是否等同于此DataFlavor
的MIME类型。不包括参数在比较中。- 参数:
-
mimeType
- MIME类型的字符串表示 - 返回:
-
如果传入的MIME类型的字符串表示等同于此
DataFlavor
的MIME类型,则返回true
;否则返回false
- 抛出:
-
NullPointerException
- 如果mimeType为null
-
isMimeTypeEqual
比较两个DataFlavor
对象的mimeType
。不考虑参数。- 参数:
-
dataFlavor
- 要比较的DataFlavor
- 返回:
-
如果
MimeType
相等,则返回true
;否则返回false
-
isMimeTypeSerializedObject
public boolean isMimeTypeSerializedObject()此DataFlavor
是否表示序列化对象?- 返回:
- 是否表示序列化对象
-
getDefaultRepresentationClass
返回默认表示类。- 返回:
- 默认表示类
-
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.List
的java.io.File
对象,则返回true
-
isFlavorTextType
public boolean isFlavorTextType()返回此Java平台实现的DataFlavor
是否是有效的文本 flavor。只有等同于DataFlavor.stringFlavor
和主要MIME类型为"text"的flavor才能是有效的文本 flavor。如果此flavor支持charset参数,则必须等同于
DataFlavor.stringFlavor
,或其表示必须是java.io.Reader
、java.lang.String
、java.nio.CharBuffer
、[C
、java.io.InputStream
、java.nio.ByteBuffer
或[B
。如果表示是java.io.InputStream
、java.nio.ByteBuffer
或[B
,则此flavor的charset
参数必须受到Java平台此实现的支持。如果未指定charset,则假定为平台默认charset,该charset始终受支持。如果此flavor不支持charset参数,则其表示必须是
java.io.InputStream
、java.nio.ByteBuffer
或[B
。查看
selectBestTextFlavor
以获取支持charset参数的文本flavor列表。- 返回:
-
如果此
DataFlavor
符合上述有效文本flavor的描述,则返回true
;否则返回false
- 自版本:
- 1.4
- 另请参阅:
-
writeExternal
序列化此DataFlavor
。- 指定者:
-
writeExternal
在接口Externalizable
- 参数:
-
os
- 要将对象写入的流 - 抛出:
-
IOException
- 包括可能发生的任何I/O异常
-
readExternal
从序列化状态恢复此DataFlavor
。- 指定者:
-
readExternal
在接口Externalizable
- 参数:
-
is
- 用于从中读取数据以恢复对象的流 - 抛出:
-
IOException
- 如果发生I/O错误 -
ClassNotFoundException
- 如果找不到要恢复的对象的类
-
clone
返回此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.This method is never invoked by this implementation from 1.1 onwards对每个MIME类型字符串调用以让DataFlavor
子类型有机会更改如何完成MIME类型的规范化。一个可能的用途是在传入的MIME类型字符串中没有出现参数/值对的情况下添加默认参数/值对。- 参数:
-
mimeType
- MIME类型 - 返回:
- MIME类型
-