- java.lang.Object
-
- java.awt.datatransfer.DataFlavor
-
- All Implemented Interfaces:
-
Externalizable
,Serializable
,Cloneable
- 已知直接子类:
-
ActivationDataFlavor
public class DataFlavor extends Object implements Externalizable, Cloneable
ADataFlavor
提供有关数据的元信息。DataFlavor
通常用于访问剪贴板上的数据,或者在拖放操作期间。DataFlavor
的实例封装了RFC 2045和RFC 2046中定义的内容类型。 内容类型通常称为MIME类型。内容类型由媒体类型(称为主类型),子类型和可选参数组成。 有关MIME类型的语法的详细信息,请参阅RFC 2045 。
JRE数据传输实现将MIME类型的参数“类”解释为表示类 。 表示类反映正在传输的对象的类。 换句话说,表示类是由
Transferable.getTransferData(java.awt.datatransfer.DataFlavor)
返回的对象的类型。 例如,imageFlavor
的MIME类型为"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
的构造函数的相应文档。此外,具有“文本”主MIME类型的
DataFlavor
实例可能具有“charset”参数。 有关“文本”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进行数据传输的更多信息,请参阅Java教程中的How to Use Drag and Drop and Data Transfer部分。
- 从以下版本开始:
- 1.1
- 另请参见:
- Serialized Form
-
-
Field Summary
Fields Modifier and Type Field 描述 static DataFlavor
allHtmlFlavor
代表一个HTML标记。static DataFlavor
fragmentHtmlFlavor
代表一个HTML标记。static DataFlavor
imageFlavor
DataFlavor
代表Java Image类,其中:static DataFlavor
javaFileListFlavor
要将文件列表从Java(和底层平台)DataFlavor
到一个DataFlavor
的这种类型/子类型和表示类别为java.util.List
。static String
javaJVMLocalObjectMimeType
要将引用传递给不具有关联MIME内容类型的任意Java对象引用,通过在同一JVM中的Transferable
接口,将DataFlavor
具有此类型/子类型的representationClass
,其中representationClass
等于类/接口的类型正在通过Transferable
。static String
javaRemoteObjectMimeType
为了通过拖放ACTION_LINK
操作将实时链接传递给远程对象,ACTION_LINK
使用Mime Content应用程序类型/ x-java-remote-object,其中DataFlavor
的表示类表示Remote
接口的类型被转移。static String
javaSerializedObjectMimeType
MIME内容 - 应用程序类型/ x-java-serialized-object表示已被持久化的Java对象的图形。static DataFlavor
plainTextFlavor
已过时。截至1.3。 使用getReaderForText(java.awt.datatransfer.Transferable)
而不是Transferable.getTransferData(DataFlavor.plainTextFlavor)
。static DataFlavor
selectionHtmlFlavor
代表一个HTML标记。static DataFlavor
stringFlavor
DataFlavor
代表Java Unicode String类,其中:
-
构造方法摘要
构造方法 Constructor 描述 DataFlavor()
构造新的DataFlavor
。DataFlavor(Class<?> representationClass, String humanPresentableName)
构造一个表示Java类的DataFlavor
。DataFlavor(String mimeType)
从一个mimeType
字符串构造一个DataFlavor
。DataFlavor(String mimeType, String humanPresentableName)
构造一个DataFlavor
,代表一个MimeType
。DataFlavor(String mimeType, String humanPresentableName, ClassLoader classLoader)
构造一个DataFlavor
,代表一个MimeType
。
-
方法摘要
所有方法 静态方法 接口方法 具体的方法 弃用的方法 Modifier and Type 方法 描述 Object
clone()
返回此DataFlavor
的克隆。boolean
equals(DataFlavor that)
此方法与equals(Object)
具有相同的行为。boolean
equals(Object o)
指示一些其他对象是否等于此。boolean
equals(String s)
已过时。与hashCode()
合同不一致,请改用isMimeTypeEqual(String)
。Class<?>
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)
获取一个文本风味的阅读器,如有必要,解码为预期的字符集(编码)。Class<?>
getRepresentationClass()
返回Class
其对象支持此DataFlavor
时,这将返回DataFlavor
请求。String
getSubType()
返回此DataFlavor
的子MIME类型。static DataFlavor
getTextPlainUnicodeFlavor()
返回一个DataFlavor
代表纯文本与Unicode编码,其中:int
hashCode()
返回这个DataFlavor
哈希码。boolean
isFlavorJavaFileListType()
如果指定的DataFlavor
表示文件对象的列表,则返回true
。boolean
isFlavorRemoteObjectType()
如果指定的DataFlavor
表示远程对象,则返回true
。boolean
isFlavorSerializedObjectType()
如果指定的DataFlavor
表示序列化对象,则返回true
。boolean
isFlavorTextType()
返回这个DataFlavor
是否是Java平台实现的有效文本风格。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
从数组DataFlavor
秒。void
setHumanPresentableName(String humanPresentableName)
为DataFlavor
表示的数据格式设置人类可呈现的名称。String
toString()
这个DataFlavor
字符串表示及其参数。protected static Class<?>
tryToLoadClass(String className, ClassLoader fallback)
尝试加载一个类:引导加载程序,系统加载程序,上下文加载程序(如果存在),最后指定加载程序。void
writeExternal(ObjectOutput os)
序列化这个DataFlavor
。
-
-
-
字段详细信息
-
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"
将null
如果java.awt.Image
不可见,java.desktop
模块未加载,或java.desktop
模块不在运行时映像中。
-
plainTextFlavor
@Deprecated public static final DataFlavor plainTextFlavor
已过时。 截至1.3。 使用getReaderForText(java.awt.datatransfer.Transferable)
而不是Transferable.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内容 - 应用程序类型/ x-java-serialized-object表示已被持久化的Java对象的图形。与此
DataFlavor
关联的表示类识别从调用返回的对象的Java类型java.awt.datatransfer.getTransferData
。- 另请参见:
- Constant Field Values
-
javaFileListFlavor
public static final DataFlavor javaFileListFlavor
要将文件列表从Java(和底层平台)DataFlavor
到一个DataFlavor
的这种类型/子类型和表示类别为java.util.List
。 列表中的每个元素都需要/保证为java.io.File
类型。
-
javaJVMLocalObjectMimeType
public static final String javaJVMLocalObjectMimeType
要将引用传递给具有相关联的MIME内容类型的任意Java对象引用,通过在同一个JVM中的Transferable
接口,将DataFlavor
具有此类型/子类型的representationClass
,其中representationClass
等于类/接口的类型正在通过Transferable
。从
Transferable.getTransferData
返回的对于具有此MIME Content-Type的DataFlavor
的对象引用Transferable.getTransferData
是DataFlavor
的表示类的DataFlavor
。- 另请参见:
- Constant Field Values
-
javaRemoteObjectMimeType
public static final String javaRemoteObjectMimeType
为了通过拖放ACTION_LINK
操作将实时链接传递给远程对象,ACTION_LINK
使用Mime Content应用程序类型/ x-java-remote-object,其中DataFlavor
的表示类表示Remote
接口的类型被转移。- 另请参见:
- Constant Field Values
-
selectionHtmlFlavor
public static DataFlavor selectionHtmlFlavor
代表一个HTML标记。 标记由源侧选择的部分组成。 因此,标记中的某些标签可能不成对。 如果风味用于表示Transferable
实例中的数据,则不会进行任何其他更改。 该DataFlavor实例表示与DataFlavor实例相同的HTML标记,内容MIME类型不包含文档参数,表示类是String类。representationClass = String mimeType = "text/html"
- 从以下版本开始:
- 1.8
-
fragmentHtmlFlavor
public static DataFlavor fragmentHtmlFlavor
代表一个HTML标记。 如果可能,从本地系统接收到的标记用对标签补充为格式良好的HTML标记。 如果风味用于表示Transferable
实例中的数据,则不会进行任何其他更改。representationClass = String mimeType = "text/html"
- 从以下版本开始:
- 1.8
-
allHtmlFlavor
public static DataFlavor allHtmlFlavor
代表一个HTML标记。 如果可能,从本机系统接收的标记补充有附加标签,以组成一个格式良好的HTML文档。 如果风味用于表示Transferable
实例中的数据,则不会进行其他更改。representationClass = String mimeType = "text/html"
- 从以下版本开始:
- 1.8
-
-
构造方法详细信息
-
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
- 用于传输这种风味的数据的类 -
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
- 用于识别此风味的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
- 用于标识此风味的MIME类型的字符串 -
humanPresentableName
- 用于识别这种风味的人类可读字符串 -
classLoader
- 要使用的类加载器 - 异常
-
ClassNotFoundException
- 如果该类没有加载 -
IllegalArgumentException
- 如果mimeType
无效 -
NullPointerException
- 如果mimeType
是null
-
DataFlavor
public DataFlavor(String mimeType) throws ClassNotFoundException
从一个mimeType
字符串构造一个DataFlavor
。 该字符串可以指定一个“class = <完全指定的Java类名>>参数以创建具有所需代表类的DataFlavor
。 如果字符串不包含“class =”参数,则默认使用java.io.InputStream
。- 参数
-
mimeType
- 用于识别此风味的MIME类型的字符串; 如果“class =”参数指定的类未成功加载,则抛出ClassNotFoundException
- 异常
-
ClassNotFoundException
- 如果该类没有加载 -
IllegalArgumentException
- 如果mimeType
无效 -
NullPointerException
- 如果mimeType
是null
-
-
方法详细信息
-
tryToLoadClass
protected static final Class<?> tryToLoadClass(String className, ClassLoader fallback) throws ClassNotFoundException
尝试加载一个类:引导加载程序,系统加载程序,上下文加载程序(如果存在),最后指定加载程序。- 参数
-
className
- 要加载的类的名称 -
fallback
- 后备装载机 - 结果
- 上课了
- 异常
-
ClassNotFoundException
- 如果没有找到类
-
toString
public String toString()
这个DataFlavor
字符串表示及其参数。 所得到的String
包含DataFlavor
类的名称,这种风格的MIME类型及其表示类。 如果这种风格的主要MIME类型为“text”,则支持charset参数,并且具有编码表示形式,还包括flavor的字符集。 有关支持charset参数的文本风格列表,请参阅selectBestTextFlavor
。- 重写:
-
toString
在Object
- 结果
-
字符串表示的这个
DataFlavor
- 另请参见:
-
selectBestTextFlavor(java.awt.datatransfer.DataFlavor[])
-
getTextPlainUnicodeFlavor
public static final DataFlavor getTextPlainUnicodeFlavor()
返回一个DataFlavor
代表Unicode编码的纯文本,其中: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
从数组DataFlavor
秒。 只有DataFlavor.stringFlavor
,以及等效的口味和主要MIME类型为“text”的口味被考虑用于选择。风味首先按照以下顺序按其MIME类型排序:
- “文/ SGML”
- “文/ XML”
- “text / html的”
- “文/ RTF”
- “文/富”
- “文/富文本”
- “文/ URI列表”
- “文本/标签分隔值”
- “文/ T140”
- “文/ RFC822报头”
- “文/ parityfec”
- “文/目录”
- “文/ CSS”
- “文本/日历”
- “应用程序/ x-java的序列化对象”
- “text / plain的”
- “文本/ <其它>”
例如,“text / sgml”将通过“text / html”进行选择,而
DataFlavor.stringFlavor
将被选择超过DataFlavor.plainTextFlavor
。如果两个或更多个口味在数组中共享最好的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
都指定了该MIME类型支持的charset参数。 开发人员不应该依赖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
获取一个文本风味的阅读器,如有必要,解码为预期的字符集(编码)。 支持的表示形式类是java.io.Reader
,java.lang.String
,java.nio.CharBuffer
,[C
,java.io.InputStream
,java.nio.ByteBuffer
,并[B
。由于不支持charset参数的文本风格以非标准格式编码,因此不应该调用此方法。 然而,为了保持向后兼容性,如果这种方法被称为这样的风格,那么这种方法将会将风格视为支持charset参数并尝试相应地进行解码。 有关不支持charset参数的文本风格列表,请参阅
selectBestTextFlavor
。- 参数
-
transferable
-Transferable
的数据将被要求在这种风格 - 结果
-
一个
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类型字符串。- 结果
- 这种风味的MIME类型字符串
-
getRepresentationClass
public Class<?> getRepresentationClass()
返回Class
其对象支持此DataFlavor
时,这将返回DataFlavor
请求。- 结果
-
在
Class
其对象支持此DataFlavor
时,这将返回DataFlavor
请求
-
getHumanPresentableName
public String getHumanPresentableName()
返回DataFlavor
表示的数据格式的人性化名称。 该名称将针对不同的国家进行本地化。- 结果
-
该
DataFlavor
代表的数据格式的人性化名称
-
getPrimaryType
public String getPrimaryType()
返回此DataFlavor
的主MIME类型。- 结果
-
这是
DataFlavor
的主要MIME类型
-
getSubType
public String getSubType()
返回此DataFlavor
的子MIME类型。- 结果
-
该MIME类型为
DataFlavor
-
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
方法在非空对象引用上实现等价关系:- 自反性 :对于任何非空的参考值
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
。
该
equals
类方法Object
实现对象上差别可能性最大的相等关系; 也就是说,对于任何非空参考值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
。- 重写:
-
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
@Deprecated public boolean equals(String s)
已过时。 与hashCode()
合同不一致,请改用isMimeTypeEqual(String)
。只比较mimeType
对String
和representationClass
的通过,在比较中没有考虑。 如果representationClass
要比较的需求,然后equals(new DataFlavor(s))
可以使用。- 参数
-
s
-mimeType
进行比较 - 结果
-
如果String(MimeType)相等,
true
;false
否则或如果s
是null
-
hashCode
public int hashCode()
返回这个DataFlavor
哈希码。 对于两个相等的DataFlavor
s,哈希码是相等的。 为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
相同,否则为false
-
isMimeTypeSerializedObject
public boolean isMimeTypeSerializedObject()
DataFlavor
是否代表序列化对象?- 结果
- 是否表示序列化对象
-
getDefaultRepresentationClass
public final Class<?> 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
的表示类是否为java.io.Reader
或其子类 - 从以下版本开始:
- 1.4
-
isRepresentationClassCharBuffer
public boolean isRepresentationClassCharBuffer()
返回此DataFlavor
的表示类是java.nio.CharBuffer
还是其子类。- 结果
-
该
DataFlavor
的表示类是否为java.nio.CharBuffer
或其子类 - 从以下版本开始:
- 1.4
-
isRepresentationClassByteBuffer
public boolean isRepresentationClassByteBuffer()
返回这个DataFlavor
的表示类是java.nio.ByteBuffer
还是其子类。- 结果
-
该
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平台实现的有效文本风格。 只有等同于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平台的支持。 如果未指定字符集,则会始终支持始终支持的平台默认字符集。如果此flavor不支持charset参数,其形式必须是
java.io.InputStream
,java.nio.ByteBuffer
,或[B
。有关支持charset参数的文本风格列表,请参阅
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
@Deprecated protected String normalizeMimeTypeParameter(String parameterName, String parameterValue)
已过时。 此方法从1.1开始就不会被此实现所调用针对每个MIME类型参数调用DataFlavor
,以允许DataFlavor
子类处理特殊参数,如text / plaincharset
参数,其值不区分大小写。 (MIME类型参数值应该区分大小写。每个参数名称/值对都调用此方法,并返回
parameterValue
的归一化表示。- 参数
-
parameterName
- 参数名称 -
parameterValue
- 参数值 - 结果
- 参数值
-
normalizeMimeType
@Deprecated protected String normalizeMimeType(String mimeType)
已过时。 此方法从1.1开始就不会被此实现所调用调用每个MIME类型的字符串,给予DataFlavor
子类型改变MIME类型规范化如何完成的机会。 一种可能的用途是在传入的MIME类型字符串中不存在的情况下添加默认参数/值对。- 参数
-
mimeType
- mime类型 - 结果
- mime类型
-
-