- java.lang.Object
-
- java.awt.datatransfer.DataFlavor
-
- 实现的所有接口
-
Externalizable
,Serializable
,Cloneable
public class DataFlavorextends Objectimplements Externalizable, Cloneable
DataFlavor
提供有关数据的元信息。DataFlavor
通常用于访问剪贴板上的数据,或者在拖放操作期间访问数据。DataFlavor
的实例封装了RFC 2045和RFC 2046中定义的内容类型。 内容类型通常称为MIME类型。内容类型由媒体类型(称为主要类型),子类型和可选参数组成。 有关MIME类型语法的详细信息,请参见RFC 2045 。
JRE数据传输实现将MIME类型的参数“class”解释为表示类 。 表示类反映了要传输的对象的类。 换句话说,表示类是由
Transferable.getTransferData(java.awt.datatransfer.DataFlavor)
返回的对象的类型。 例如,MIME类型imageFlavor
是"image/x-java-image;class=java.awt.Image"
,主要类型是image
,子类型是x-java-image
,表示类是java.awt.Image
。 当getTransferData
与调用DataFlavor
的imageFlavor
,实例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"); // The following returns true. flavor1.equals(flavor2);
如上所述,flavor1
和flavor2
被认为是相同的。 因此,向Transferable
询问DataFlavor
返回相同的结果。有关使用Swing进行数据传输的更多信息,请参阅The Java Tutorial中的How to Use Drag and Drop and Data Transfer部分。
- 从以下版本开始:
- 1.1
- 另请参见:
- Serialized Form
-
-
字段汇总
字段 变量和类型 字段 描述 static DataFlavor
allHtmlFlavor
表示一段HTML标记。static DataFlavor
fragmentHtmlFlavor
表示一段HTML标记。static DataFlavor
imageFlavor
DataFlavor
代表Java Image类,其中:static DataFlavor
javaFileListFlavor
到文件的列表传送到/从Java(和底层平台)一个DataFlavor
此类型/子类型和表示类的java.util.List
被使用。static String
javaJVMLocalObjectMimeType
转移到不具有关联的MIME内容类型的任意Java对象基准的基准,穿过一个Transferable
接口WITHIN THE SAME JVM中,DataFlavor
与此类型/子类型时,用representationClass
等于类/接口的类型正在通过Transferable
。static String
javaRemoteObjectMimeType
为了通过拖放ACTION_LINK
操作将实时链接传递给远程对象,ACTION_LINK
使用Mime内容类型的application / x-java-remote-object,其中DataFlavor
的表示类表示Remote
接口的类型被转移。static String
javaSerializedObjectMimeType
MIME内容类型application / x-java-serialized-object表示已成为持久性的Java对象的图形。static DataFlavor
plainTextFlavor
已过时。截至1.3。static DataFlavor
selectionHtmlFlavor
表示一段HTML标记。static DataFlavor
stringFlavor
DataFlavor
表示Java Unicode String类,其中:
-
构造方法摘要
构造方法 构造器 描述 DataFlavor()
构造一个新的DataFlavor
。DataFlavor(类<?> representationClass, String humanPresentableName)
构造一个代表Java类的DataFlavor
。DataFlavor(String mimeType)
构造一个DataFlavor
从mimeType
字符串。DataFlavor(String mimeType, String humanPresentableName)
构造一个DataFlavor
一个表示MimeType
。DataFlavor(String mimeType, String humanPresentableName, ClassLoader classLoader)
构造一个DataFlavor
一个表示MimeType
。
-
方法摘要
所有方法 静态方法 实例方法 具体的方法 弃用的方法 变量和类型 方法 描述 Object
clone()
返回此DataFlavor
。boolean
equals(DataFlavor that)
此方法与equals(Object)
具有相同的行为。boolean
equals(Object o)
指示某个其他对象是否“等于”此对象。boolean
equals(String s)
已过时。由于与hashCode()
合同不一致,请改用isMimeTypeEqual(String)
。类<?>
getDefaultRepresentationClass()
返回默认的表示形式类。String
getDefaultRepresentationClassAsString()
返回默认表示形式的名称。String
getHumanPresentableName()
返回此DataFlavor
表示的数据格式的人类可呈现名称。String
getMimeType()
返回此DataFlavor
的MIME类型字符串。String
getParameter(String paramName)
如果paramName
等于“humanPresentableName”,则返回此DataFlavor
的人类可呈现名称。String
getPrimaryType()
返回此DataFlavor
的主要MIME类型。Reader
getReaderForText(Transferable transferable)
获取文本flavor的Reader,如果需要,为预期的charset(编码)解码。类<?>
getRepresentationClass()
返回类
其对象支持此DataFlavor
时,这将返回DataFlavor
要求。String
getSubType()
返回此DataFlavor
的子MIME类型。static DataFlavor
getTextPlainUnicodeFlavor()
返回表示Unicode编码的纯文本的DataFlavor
,其中:int
hashCode()
返回此DataFlavor
哈希码。boolean
isFlavorJavaFileListType()
如果指定的DataFlavor
表示文件对象列表,则返回true
。boolean
isFlavorRemoteObjectType()
如果指定的DataFlavor
表示远程对象,则返回true
。boolean
isFlavorSerializedObjectType()
如果指定的DataFlavor
表示序列化对象,则返回true
。boolean
isFlavorTextType()
返回此DataFlavor
是否是此Java平台实现的有效文本flavor。boolean
isMimeTypeEqual(DataFlavor dataFlavor)
比较mimeType
两个DataFlavor
对象。boolean
isMimeTypeEqual(String mimeType)
返回传入的MIME类型的字符串表示形式是否等效于此DataFlavor
的MIME类型。boolean
isMimeTypeSerializedObject()
DataFlavor
是否代表序列化对象?boolean
isRepresentationClassByteBuffer()
返回此DataFlavor
的表示类是java.nio.ByteBuffer
还是其子类。boolean
isRepresentationClassCharBuffer()
返回此DataFlavor
的表示类是java.nio.CharBuffer
还是其子类。boolean
isRepresentationClassInputStream()
DataFlavor
代表java.io.InputStream
吗?boolean
isRepresentationClassReader()
返回此DataFlavor
的表示形式类是java.io.Reader
还是其子类。boolean
isRepresentationClassRemote()
返回true
如果表示形式类为Remote
。boolean
isRepresentationClassSerializable()
如果可以序列化表示类,则返回true
。boolean
match(DataFlavor that)
与equals(DataFlavor)
相同。protected String
normalizeMimeType(String mimeType)
已过时。从1.1开始,此实现永远不会调用此方法protected String
normalizeMimeTypeParameter(String parameterName, String parameterValue)
已过时。从1.1开始,此实现永远不会调用此方法void
readExternal(ObjectInput is)
从序列化状态恢复此DataFlavor
。static DataFlavor
selectBestTextFlavor(DataFlavor[] availableFlavors)
从DataFlavor
s数组中选择最佳文本DataFlavor
。void
setHumanPresentableName(String humanPresentableName)
设置此DataFlavor
表示的数据格式的人类可呈现名称。String
toString()
此DataFlavor
字符串表示形式及其参数。protected static 类<?>
tryToLoadClass(String className, ClassLoader fallback)
尝试从以下方面加载类:引导加载程序,系统加载程序,上下文加载程序(如果存在)以及最后指定的加载程序。void
writeExternal(ObjectOutput os)
序列化此DataFlavor
。
-
-
-
字段详细信息
-
stringFlavor
public static final DataFlavor stringFlavor
DataFlavor
表示Java Unicode String类,其中:representationClass = java.lang.String mimeType = "application/x-java-serialized-object"
-
imageFlavor
public static final DataFlavor imageFlavor
DataFlavor
表示Java Image类,其中:representationClass = java.awt.Image mimeType = "image/x-java-image"
将是null
如果java.awt.Image
不到java.desktop
则未加载java.desktop
模块,或者java.desktop
模块不在运行库映像中。
-
plainTextFlavor
@Deprecatedpublic static final DataFlavor plainTextFlavor
Deprecated.as of 1.3. UsegetReaderForText(java.awt.datatransfer.Transferable)
instead ofTransferable.getTransferData(DataFlavor.plainTextFlavor)
.DataFlavor
用Unicode编码表示纯文本,其中: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(和底层平台)一个DataFlavor
此类型/子类型和表示类的java.util.List
被使用。 列表的每个元素都必须/保证是java.io.File
类型。
-
javaJVMLocalObjectMimeType
public static final String javaJVMLocalObjectMimeType
转移到不具有关联的MIME内容类型的任意Java对象基准的基准,穿过一个Transferable
接口WITHIN THE SAME JVM中,DataFlavor
与此类型/子类型时,用representationClass
等于类/接口的类型正在通过Transferable
。对于具有此MIME Content-Type的
DataFlavor
,从Transferable.getTransferData
返回的对象引用Transferable.getTransferData
是DataFlavor
的表示类的DataFlavor
。- 另请参见:
- 常数字段值
-
javaRemoteObjectMimeType
public static final String javaRemoteObjectMimeType
为了通过拖放ACTION_LINK
操作将实时链接传递给远程对象,ACTION_LINK
使用Mime内容类型的application / x-java-remote-object,其中DataFlavor
的表示类表示Remote
接口的类型被转移。- 另请参见:
- 常数字段值
-
selectionHtmlFlavor
public static DataFlavor selectionHtmlFlavor
表示一段HTML标记。 标记由源侧选择的部分组成。 因此,标记中的某些标记可能是不成对的。 如果使用flavor来表示Transferable
实例中的数据,则不会进行其他更改。 此DataFlavor实例表示与DataFlavor实例相同的HTML标记,其中内容MIME类型不包含文档参数,表示类是String类。representationClass = String mimeType = "text/html"
- 从以下版本开始:
- 1.8
-
fragmentHtmlFlavor
public static DataFlavor fragmentHtmlFlavor
表示一段HTML标记。 如果可能的话,从本机系统接收的标记补充了对标签,以成为格式良好的HTML标记。 如果使用flavor来表示Transferable
实例中的数据,则不会进行其他更改。representationClass = String mimeType = "text/html"
- 从以下版本开始:
- 1.8
-
allHtmlFlavor
public static DataFlavor allHtmlFlavor
表示一段HTML标记。 如果可能,从本机系统接收的标记补充了额外的标记,以构成格式良好的HTML文档。 如果使用flavor来表示Transferable
实例中的数据,则不会进行其他更改。representationClass = String mimeType = "text/html"
- 从以下版本开始:
- 1.8
-
-
构造方法详细信息
-
DataFlavor
public DataFlavor()
构造一个新的DataFlavor
。 提供此构造函数仅用于支持Externalizable
接口。 它不适合公共(客户)使用。- 从以下版本开始:
- 1.2
-
DataFlavor
public DataFlavor(类<?> representationClass, String humanPresentableName)
构造一个代表Java类的DataFlavor
。返回的
DataFlavor
将具有以下特征:representationClass = representationClass mimeType = application/x-java-serialized-object
- 参数
-
representationClass
- 用于传输此风格的数据的类 -
humanPresentableName
- 用于识别这种味道的人类可读字符串; 如果此参数为null
则使用MIME内容类型的值 - 异常
-
NullPointerException
- 如果representationClass
是null
-
DataFlavor
public DataFlavor(String mimeType, String humanPresentableName)
构造一个DataFlavor
一个表示MimeType
。返回的
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
- 用于识别这种味道的人类可读字符串; 如果此参数为null
则使用MIME内容类型的值 - 异常
-
IllegalArgumentException
- 如果mimeType
无效或者未成功加载类 -
NullPointerException
- 如果mimeType
是null
-
DataFlavor
public DataFlavor(String mimeType, String humanPresentableName, ClassLoader classLoader) throws ClassNotFoundException
构造一个DataFlavor
一个表示MimeType
。返回的
DataFlavor
具有以下特征:如果mimeType是“application / x-java-serialized-object; class = <representation class>”,则结果与调用
new DataFlavor(Class.forName(<representation class>)
相同。除此以外:
representationClass = InputStream mimeType = mimeType
- 参数
-
mimeType
- 用于标识此flavor的MIME类型的字符串 -
humanPresentableName
- 用于识别此风格的人类可读字符串 -
classLoader
- 要使用的类加载器 - 异常
-
ClassNotFoundException
- 如果未加载类 -
IllegalArgumentException
- 如果mimeType
无效 -
NullPointerException
- 如果mimeType
是null
-
DataFlavor
public DataFlavor(String mimeType) throws ClassNotFoundException
构造一个DataFlavor
从mimeType
字符串。 该字符串可以指定“class = <完全指定的Java类名>”参数,以创建具有所需表示类的DataFlavor
。 如果字符串不包含“class =”参数,则默认使用java.io.InputStream
。- 参数
-
mimeType
- 用于标识此flavor的MIME类型的字符串; 如果“class =”参数指定的类未成功加载,则抛出ClassNotFoundException
- 异常
-
ClassNotFoundException
- 如果未加载类 -
IllegalArgumentException
- 如果mimeType
无效 -
NullPointerException
- 如果mimeType
是null
-
-
方法详细信息
-
tryToLoadClass
protected static final 类<?> 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参数的文本selectBestTextFlavor
的列表,请参见selectBestTextFlavor
。- 重写:
-
toString
在类Object
- 结果
- 此
DataFlavor
字符串表示DataFlavor
- 另请参见:
-
selectBestTextFlavor(java.awt.datatransfer.DataFlavor[])
-
getTextPlainUnicodeFlavor
public static final DataFlavor getTextPlainUnicodeFlavor()
返回表示具有Unicode编码的纯文本的DataFlavor
,其中:representationClass = java.io.InputStream mimeType = "text/plain; charset=<platform default Unicode encoding>"
- Implementation Note:
- Oracle针对Microsoft Windows和macOS的实现使用编码
utf-16le
。 Oracle针对Solaris和Linux的实现使用编码iso-10646-ucs-2
。 - 结果
-
DataFlavor
表示具有Unicode编码的纯文本 - 从以下版本开始:
- 1.3
-
selectBestTextFlavor
public static final DataFlavor selectBestTextFlavor(DataFlavor[] availableFlavors)
从DataFlavor
s数组中选择最佳文本DataFlavor
。 仅DataFlavor.stringFlavor
,以及具有主要MIME类型“text”的等效风格和风格,以供选择。首先按以下顺序按其MIME类型对Flavors进行排序:
- “文/ SGML”
- “文/ XML”
- “text / html的”
- “文/ RTF”
- “文/富”
- “文/富文本”
- “文/ URI列表”
- “文本/标签分隔值”
- “文/ T140”
- “文/ RFC822报头”
- “文/ parityfec”
- “文/目录”
- “文/ CSS”
- “文本/日历”
- “应用程序/ x-java的序列化对象”
- “text / plain的”
- “文本/ <其它>”
例如,将在“text / html”上选择“text / sgml”,并在
DataFlavor.stringFlavor
上选择DataFlavor.plainTextFlavor
。如果两个或多个flavor在数组中共享最佳MIME类型,那么将检查该MIME类型以查看它是否支持charset参数。
以下MIME类型支持或被视为支持,如charset参数:
- “文/ SGML”
- “文/ XML”
- “text / html的”
- “文/富”
- “文/富文本”
- “文/ URI列表”
- “文/目录”
- “文/ CSS”
- “文本/日历”
- “应用程序/ x-java的序列化对象”
- “text / plain的”
- “文/ RTF”
- “文本/标签分隔值”
- “文/ T140”
- “文/ RFC822报头”
- “文/ parityfec”
DataFlavor
明确列出。 如果是这样,JRE将从那时开始假设MIME类型支持charset参数,并且不会再次检查。 如果未明确列出该参数,则JRE将从该点开始假定MIME类型不支持charset参数,并且不会再次检查。 由于此检查是在任意选择的DataFlavor
上执行的,因此开发人员必须确保具有“text / <other>”MIME类型的所有DataFlavor
指定charset参数(如果该MIME类型支持该参数)。 开发人员不应该依赖JRE将平台的默认字符集替换为“text / <other>”DataFlavor。 不遵守此限制将导致未定义的行为。如果阵列中的最佳MIME类型不支持charset参数,则共享MIME类型的flavor然后可通过它们的表示的类以下面的顺序进行排序:
java.io.InputStream
,java.nio.ByteBuffer
,[B
,<所有其他>。如果两种或更多种口味共享最佳表示类别,或者如果没有味道具有三种指定表示中的一种,则将非确定性地选择这些口味中的一种。
如果阵列中的最佳MIME类型不支持charset参数,则共享MIME类型的flavor然后可通过它们的表示的类以下面的顺序进行排序:
java.io.Reader
,java.lang.String
,java.nio.CharBuffer
,[C
,<所有其他>。如果两个或多个风格共享最佳表示类,并且该表示是明确列出的四个之一,则将非确定性地选择这些风格中的一个。 但是,如果没有任何风味具有四种指定表示中的一种,则风味将按其字符集排序。 Unicode字符集,例如“UTF-16”,“UTF-8”,“UTF-16BE”,“UTF-16LE”及其别名,被认为是最佳的。 在它们之后,选择平台默认字符集及其别名。 “US-ASCII”及其别名最差。 所有其他字符集都按字母顺序选择,但只考虑Java平台的此实现支持的字符集。
如果两个或多个flavor共享最佳的charset,则flavor再次按照其表示形式类排序,顺序如下:
java.io.InputStream
,java.nio.ByteBuffer
,[B
,<所有其他>。如果两种或更多种口味共享最佳表示类别,或者如果没有味道具有三种指定表示中的一种,则将非确定性地选择这些口味中的一种。
- 参数
-
availableFlavors
- 一系列可用的DataFlavor
s - 结果
- 根据上面规定的最佳(最高保真度)风味,或
null
,如果availableFlavors
是null
,长度为零,或者不包含文字风味 - 从以下版本开始:
- 1.3
-
getReaderForText
public Reader getReaderForText(Transferable transferable) throws UnsupportedFlavorException, IOException
获取文本flavor的Reader,如果需要,为预期的charset(编码)解码。 支持的表示形式类是java.io.Reader
,java.lang.String
,java.nio.CharBuffer
,[C
,java.io.InputStream
,java.nio.ByteBuffer
和[B
。因为不支持charset参数的文本flavor以非标准格式编码,所以不应该为这种风格调用此方法。 但是,为了保持向后兼容性,如果为这种风格调用此方法,此方法将将该风格视为支持charset参数并尝试相应地对其进行解码。 有关不支持charset参数的文本
selectBestTextFlavor
的列表,请参见selectBestTextFlavor
。- 参数
-
transferable
-Transferable
其数据将以此风格请求 - 结果
- a
Reader
阅读Transferable
的数据 - 异常
-
IllegalArgumentException
- 如果表示类不是上面列出的七个之一 -
IllegalArgumentException
- 如果Transferable
有null
数据 -
NullPointerException
- 如果Transferable
是null
-
UnsupportedEncodingException
-如果此flavor的表示形式为java.io.InputStream
,java.nio.ByteBuffer
,或[B
这flavor的编码不能由此实现Java平台的支持 -
UnsupportedFlavorException
- 如果Transferable
不支持这种味道 -
IOException
- 如果由于I / O错误而无法读取数据 - 从以下版本开始:
- 1.3
- 另请参见:
-
selectBestTextFlavor(java.awt.datatransfer.DataFlavor[])
-
getMimeType
public String getMimeType()
返回此DataFlavor
的MIME类型字符串。- 结果
- 此flavor的MIME类型字符串
-
getRepresentationClass
public 类<?> getRepresentationClass()
返回类
其对象支持此DataFlavor
时,这将返回DataFlavor
要求。- 结果
- 该
类
其对象支持此DataFlavor
时,这将返回DataFlavor
要求
-
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
- 请求的参数名称 - 结果
- name参数的值,如果没有关联值,
null
-
setHumanPresentableName
public void setHumanPresentableName(String humanPresentableName)
设置此DataFlavor
表示的数据格式的人类可呈现名称。 此名称将针对不同国家/地区进行本地化- 参数
-
humanPresentableName
- 新的人类名字
-
equals
public boolean equals(Object o)
指示某个其他对象是否“等于”此对象。equals
方法在非null对象引用上实现等价关系:- 自反性 :对于任何非空的参考值
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
。
类
Object
的equals
方法实现了对象上最具区别的可能等价关系; 也就是说,对于任何非空引用值x
和y
,当且仅当x
和y
引用同一对象(x == y
具有值true
)时,此方法返回true
。请注意,通常需要在重写此方法时覆盖
hashCode
方法,以便维护hashCode
方法的常规协定,该方法声明相等对象必须具有相等的哈希代码。DataFlavor
类的等于比较实现如下:当且仅当它们的MIME主类型和子类型以及表示类相等时,才认为两个DataFlavor
是相等的。 此外,如果主类型是“文本”,子类型表示文本flavor支持charset参数,和表示类不是java.io.Reader
,java.lang.String
,java.nio.CharBuffer
,或[C
,所述charset
参数也必须是相等的。 如果没有为DataFlavor
的一个或两个明确指定字符集,则假定使用平台默认编码。 有关支持charset参数的文本selectBestTextFlavor
的列表,请参见selectBestTextFlavor
。- 重写:
-
equals
在类Object
- 参数
-
o
- 用Object
与this
比较 - 结果
-
true
如果that
相当于此DataFlavor
; 否则为false
- 另请参见:
-
selectBestTextFlavor(java.awt.datatransfer.DataFlavor[])
- 自反性 :对于任何非空的参考值
-
equals
public boolean equals(DataFlavor that)
此方法与equals(Object)
具有相同的行为。 唯一的区别是它需要一个DataFlavor
实例作为参数。- 参数
-
that
- 与DataFlavor
进行比较this
- 结果
-
true
如果that
与此相当于DataFlavor
; 否则为false
- 另请参见:
-
selectBestTextFlavor(java.awt.datatransfer.DataFlavor[])
-
equals
@Deprecatedpublic boolean equals(String s)
Deprecated.As inconsistent withhashCode()
contract, useisMimeTypeEqual(String)
instead.比较只有mimeType
针对传入String
和representationClass
在比较时不考虑。 如果representationClass
要比较的需求,然后equals(new DataFlavor(s))
可以使用。- 参数
-
s
- 比较mimeType
- 结果
-
true
如果String(MimeType)相等;false
否则或者如果s
是null
-
hashCode
public int hashCode()
返回此DataFlavor
哈希码。 对于两个相等的DataFlavor
,哈希码是相等的。 为String
匹配DataFlavor.equals(String)
,它不能保证DataFlavor
的哈希码等于的哈希码String
。- 重写:
-
hashCode
在类Object
- 结果
- 这个
DataFlavor
的哈希代码 - 另请参见:
-
Object.equals(java.lang.Object)
,System.identityHashCode(java.lang.Object)
-
match
public boolean match(DataFlavor that)
与equals(DataFlavor)
相同。- 参数
-
that
- 与DataFlavor
比较this
- 结果
-
true
如果that
相当于此DataFlavor
; 否则为false
- 从以下版本开始:
- 1.3
- 另请参见:
-
selectBestTextFlavor(java.awt.datatransfer.DataFlavor[])
-
isMimeTypeEqual
public boolean isMimeTypeEqual(String mimeType)
返回传入的MIME类型的字符串表示形式是否等效于此DataFlavor
的MIME类型。 参数不包括在比较中。- 参数
-
mimeType
- MIME类型的字符串表示形式 - 结果
-
true
如果传入的MIME类型的字符串表示形式等同于此DataFlavor
的MIME类型; 否则为false
- 异常
-
NullPointerException
- 如果mimeType是null
-
isMimeTypeEqual
public final boolean isMimeTypeEqual(DataFlavor dataFlavor)
比较mimeType
两个DataFlavor
对象。 不考虑参数。- 参数
-
dataFlavor
- 待比较的DataFlavor
- 结果
-
true
若MimeType
s相等,否则false
-
isMimeTypeSerializedObject
public boolean isMimeTypeSerializedObject()
DataFlavor
是否代表序列化对象?- 结果
- 是否表示序列化对象
-
getDefaultRepresentationClass
public final 类<?> getDefaultRepresentationClass()
返回默认的表示形式类。- 结果
- 默认的表示类
-
getDefaultRepresentationClassAsString
public final String getDefaultRepresentationClassAsString()
返回默认表示形式的名称。- 结果
- 默认表示形式的名称
-
isRepresentationClassInputStream
public boolean isRepresentationClassInputStream()
DataFlavor
是否代表java.io.InputStream
?- 结果
- 此
DataFlavor
是否代表java.io.InputStream
-
isRepresentationClassReader
public boolean isRepresentationClassReader()
返回此DataFlavor
的表示类是java.io.Reader
还是其子类。- 结果
- 此
DataFlavor
的表示形式及DataFlavor
是否为java.io.Reader
或其子类 - 从以下版本开始:
- 1.4
-
isRepresentationClassCharBuffer
public boolean isRepresentationClassCharBuffer()
返回此DataFlavor
的表示形式类是java.nio.CharBuffer
还是其子类。- 结果
- 此
DataFlavor
的表示形式及其子类DataFlavor
为java.nio.CharBuffer
或其子类 - 从以下版本开始:
- 1.4
-
isRepresentationClassByteBuffer
public boolean isRepresentationClassByteBuffer()
返回此DataFlavor
的表示形式类是java.nio.ByteBuffer
还是其子类。- 结果
- 此
DataFlavor
的表示形式及其子类DataFlavor
为java.nio.ByteBuffer
- 从以下版本开始:
- 1.4
-
isRepresentationClassSerializable
public boolean isRepresentationClassSerializable()
如果可以序列化表示类,则返回true
。- 结果
-
true
如果可以序列化表示类
-
isRepresentationClassRemote
public boolean isRepresentationClassRemote()
返回true
如果表示形式类为Remote
。- 结果
-
true
如果表示类是Remote
-
isFlavorSerializedObjectType
public boolean isFlavorSerializedObjectType()
如果指定的DataFlavor
表示序列化对象,则返回true
。- 结果
-
true
如果指定的DataFlavor
表示序列化对象
-
isFlavorRemoteObjectType
public boolean isFlavorRemoteObjectType()
如果指定的DataFlavor
表示远程对象,则返回true
。- 结果
-
true
如果指定的DataFlavor
表示远程对象
-
isFlavorJavaFileListType
public boolean isFlavorJavaFileListType()
如果指定的DataFlavor
表示文件对象列表,则返回true
。- 结果
-
true
如果指定的DataFlavor
表示java.util.List
的java.io.File
-
isFlavorTextType
public boolean isFlavorTextType()
返回此DataFlavor
是否是此Java平台实现的有效文本flavor。 只有等效于DataFlavor.stringFlavor
和DataFlavor
且主要MIME类型为“text”的风格才能成为有效的文本风格。如果此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
,那么这个味道的charset
参数必须通过此实现Java平台的支持。 如果未指定charset,则假定始终支持平台默认charset。如果此flavor不支持charset参数,其形式必须是
java.io.InputStream
,java.nio.ByteBuffer
,或[B
。有关支持charset参数的文本
selectBestTextFlavor
的列表,请参见selectBestTextFlavor
。- 结果
-
true
如果此DataFlavor
是如上所述的有效文本风格; 否则为false
- 从以下版本开始:
- 1.4
- 另请参见:
-
selectBestTextFlavor(java.awt.datatransfer.DataFlavor[])
-
writeExternal
public void writeExternal(ObjectOutput os) throws IOException
序列化这个DataFlavor
。- Specified by:
-
writeExternal
在界面Externalizable
- 参数
-
os
- 要将对象写入的流 - 异常
-
IOException
- 包括可能发生的任何I / O异常
-
readExternal
public void readExternal(ObjectInput is) throws IOException, ClassNotFoundException
从序列化状态恢复此DataFlavor
。- Specified by:
-
readExternal
在界面Externalizable
- 参数
-
is
- 从中读取数据以恢复对象的流 - 异常
-
IOException
- 如果发生I / O错误 -
ClassNotFoundException
- 如果找不到要还原的对象的类。
-
clone
public Object clone() throws CloneNotSupportedException
返回此DataFlavor
。- 重写:
-
clone
在类Object
- 结果
- 这个
DataFlavor
- 异常
-
CloneNotSupportedException
- 如果对象的类不支持Cloneable
接口。 覆盖clone
方法的子类也可以抛出此异常以指示无法克隆实例。 - 另请参见:
-
Cloneable
-
normalizeMimeTypeParameter
@Deprecatedprotected String normalizeMimeTypeParameter(String parameterName, String parameterValue)
Deprecated.This method is never invoked by this implementation from 1.1 onwards对于每个MIME类型参数,调用DataFlavor
以允许DataFlavor
子类处理特殊参数,例如text / plaincharset
参数,其值不区分大小写。 (MIME类型参数值应区分大小写。为每个参数名称/值对调用此方法,并应返回
parameterValue
的规范化表示parameterValue
。- 参数
-
parameterName
- 参数名称 -
parameterValue
- 参数值 - 结果
- 参数值
-
normalizeMimeType
@Deprecatedprotected String normalizeMimeType(String mimeType)
Deprecated.This method is never invoked by this implementation from 1.1 onwards为每个MIME类型字符串调用以为DataFlavor
子类型提供更改MIME类型规范化的完成方式的机会。 一种可能的用途是在传入的MIME类型字符串中不存在默认参数/值对的情况下添加默认参数/值对。- 参数
-
mimeType
- 哑剧类型 - 结果
- 哑剧类型
-
-