标题：DataFlavor
继承关系
java.awt.datatransfer类 SystemFlavorMap
java.lang.Object
java.awt.datatransfer.SystemFlavorMap所有已实现的接口：FlavorMap, FlavorTablepublic final class SystemFlavorMap extends Objectimplements FlavorMap, FlavorTable
SystemFlavorMap 是 "native" (String)（对应于特定于平台的数据格式）和 "flavor" (DataFlavor)（对应于与平台无关的 MIME 类型）之间的可配置映射。数据传输子系统使用此映射在 Java 和本机应用程序之间传输数据，以及在独立的 VM 中的 Java 应用程序之间传输数据。
在 Sun 参考实现中，默认的 SystemFlavorMap 是通过文件 jre/lib/flavormap.properties 和 AWT 属性 AWT.DnD.flavorMapFileURL 所引用的 URL 的内容初始化的。有关详细信息，请参阅 flavormap.properties。从以下版本开始：1.2
方法摘要voidaddFlavorForUnencodedNative(String nat, DataFlavor flav)       
添加从单个 String native 到单个 DataFlavor 的映射。
voidaddUnencodedNativeForFlavor(DataFlavor flav, String nat)          
添加从指定的 DataFlavor（和等于指定 DataFlavor 的所有 DataFlavor）到指定 String native 的映射。
static DataFlavordecodeDataFlavor(String nat)         
解码 String native 以用作 DataFlavor。
static StringdecodeJavaMIMEType(String nat)         
解码 String native 以用作 Java MIME 类型。
static StringencodeDataFlavor(DataFlavor flav)    
编码 DataFlavor 以用作 String native。
static StringencodeJavaMIMEType(String mimeType)         
编码 MIME 类型以用作 String native。
static FlavorMapgetDefaultFlavorMap()          
返回此线程的 ClassLoader 的默认 FlavorMap。
List<DataFlavor>getFlavorsForNative(String nat)         
返回数据传输子系统可以将指定 String native 转换成的 DataFlavor 的 List。
Map<String,DataFlavor>getFlavorsForNatives(String[] natives)          
返回指定 String native 到其大多数首选 DataFlavor 的 Map。
List<String>getNativesForFlavor(DataFlavor flav)        
返回数据传输子系统可以将指定 DataFlavor 转换成的 String native 的 List。
Map<DataFlavor,String>getNativesForFlavors(DataFlavor[] flavors)          
返回指定 DataFlavor 到其大多数首选的 String native 的 Map。
static booleanisJavaMIMEType(String str)          
返回指定的 String 是否为编码的 Java MIME 类型。
voidsetFlavorsForNative(String nat, DataFlavor[] flavors)        
放弃指定 String native 的当前映射，而创建指定 DataFlavor 的新映射。
voidsetNativesForFlavor(DataFlavor flav, String[] natives)         
放弃指定 DataFlavor 和等于指定 DataFlavor 的所有 DataFlavor 的当前映射，并创建到指定 String native 的新映射。
从类 java.lang.Object 继承的方法
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
方法详细信息
getDefaultFlavorMappublic static FlavorMapgetDefaultFlavorMap()
返回此线程的 ClassLoader 的默认 FlavorMap。
getNativesForFlavorpublic List<String> getNativesForFlavor(DataFlavor flav) 
返回数据传输子系统可以将指定 DataFlavor 转换成的 String native 的 List。该 List 的排序方式是从最好的 native 到最差的 native。即第一个 native 最能将指定 flavor 的数据反映到底层的本机平台。
如果指定的 DataFlavor 以前对于数据传输子系统而言是未知的，并且数据传输子系统未能将此 DataFlavor 转换为任何现有的 native，则调用此方法将在指定的 DataFlavor 和其 MIME 类型的编码版本之间建立一个双向映射，作为其 native。
指定者：接口 FlavorTable 中的 getNativesForFlavor参数：flav - 应该返回其对应 native 的 DataFlavor。如果指定 null，则数据传输子系统当前已知的所有 native 都将以不确定的顺序返回。 返回：java.lang.String 对象的 java.util.List，这些对象是特定于平台的数据格式的特定于平台的表示形式 
从以下版本开始：1.4 
另请参见：encodeDataFlavor(java.awt.datatransfer.DataFlavor)
getFlavorsForNativepublic List<DataFlavor> getFlavorsForNative(String nat) 返回数据传输子系统可以将指定 String native 转换成的 DataFlavor 的 List。该 List 的排序方式是从最好的 DataFlavor 到最差的 DataFlavor。即第一个 DataFlavor 最能将指定 native 中的数据反映到 Java 应用程序。
如果指定的 native 以前对于数据传输子系统而言是未知的，并且该 native 编码正确，则调用此方法将在指定的 native 和 DataFlavor（其 MIME 类型为 native 的解码版本）之间建立一个双向映射。
如果指定的 native 不是正确编码的 native，并且此 native 的映射关系没有使用 setFlavorsForNative 进行修改，则 List 的内容是与平台有关的，但是并不能返回 null。
指定者：接口 FlavorTable 中的 getFlavorsForNative参数：nat - 应该返回其对应 DataFlavor 的 native。如果指定 null，则数据传输子系统当前已知的所有 DataFlavor 都将以不确定的顺序返回。
返回：DataFlavor 对象的 java.util.List，可以将特定于平台的指定 native 中特定于平台的数据转换为这些对象。 从以下版本开始：1.4 
另请参见：encodeJavaMIMEType(java.lang.String)
getNativesForFlavorspublic Map<DataFlavor,String> getNativesForFlavors(DataFlavor[] flavors) 返回指定 DataFlavor 到其大多数首选的 String native 的 Map。每一个 native 值都将与指定 flavor 的 getNativesForFlavor 所返回 List 中的第一个 native 相同。
如果指定的 DataFlavor 以前对于数据传输子系统是未知的，那么调用此方法将在指定的 DataFlavor 和其 MIME 类型的编码版本之间建立一个双向映射，作为其 native。
指定者：接口 FlavorMap 中的 getNativesForFlavors参数：flavors - 一组 DataFlavor，它们是返回 Map 的键集。如果指定了 null，则返回对数据传输子系统已知的所有 DataFlavor 到其大多数首选 String native 的映射。 返回：DataFlavor 到 String native 的 java.util.Map
另请参见：getNativesForFlavor(java.awt.datatransfer.DataFlavor), encodeDataFlavor(java.awt.datatransfer.DataFlavor)
getFlavorsForNativespublic Map<String,DataFlavor> getFlavorsForNatives(String[] natives) 返回指定 String native 到其大多数首选 DataFlavor 的 Map。每一个 DataFlavor 值都将与指定 native 的 getFlavorsForNative 所返回 List 中的第一个 DataFlavor 相同。
如果指定的 native 以前对于数据传输子系统而言是未知的，并且该 native 编码正确，则调用此方法将在指定的 native 和 DataFlavor（其 MIME 类型为 native 的解码版本）之间建立一个双向映射。
指定者：接口 FlavorMap 中的 getFlavorsForNatives
参数：native - 一组 String，它们是返回 Map 的键集。如果指定了 null，则返回所有受支持 String native 到其大多数首选 DataFlavor 的映射。 
返回：String native 到 DataFlavor 的 java.util.Map另请参见：getFlavorsForNative(java.lang.String), encodeJavaMIMEType(java.lang.String)
addUnencodedNativeForFlavorpublic void addUnencodedNativeForFlavor(DataFlavor flav, String nat)添加从指定的 DataFlavor（和等于指定 DataFlavor 的所有 DataFlavor）到指定 String native 的映射。与 getNativesForFlavor 不同，该映射仅是单向建立的，并且不对 native 进行编码。要建立双向映射，请同时调用 addFlavorForUnencodedNative。新的映射优先级低于现有映射。如果从指定或相等 DataFlavor 到指定 String native 的映射已经存在，则此方法无效。 参数：flav - 该映射的 DataFlavor 键 nat - 该映射的 String native 值
抛出：NullPointerException - 如果 flav 或 nat 为 null
从以下版本开始：1.4
另请参见：addFlavorForUnencodedNative(java.lang.String, java.awt.datatransfer.DataFlavor)
setNativesForFlavorpublic void setNativesForFlavor(DataFlavor flav, String[] natives)放弃指定 DataFlavor 和等于指定 DataFlavor 的所有 DataFlavor 的当前映射，并创建到指定 String native 的新映射。与 getNativesForFlavor 不同，这些映射仅是单向建立的，并且不对 native 进行编码。要建立双向映射，请同时调用 setFlavorsForNative。数组中的第一个 native 表示最高优先级的映射。后续 native 所表示的映射的优先级是递减的。
如果数组包含多个引用相等 String native 的元素，则此方法将为其中第一个元素建立新映射，而忽略其余的元素。
建议客户机代码不要重置数据传输子系统建立的映射。此方法仅用于应用程序级的映射。
参数：flav - 该映射的 DataFlavor 键 natives - 该映射的 String native 值 抛出：NullPointerException - 如果 flav 或 native 为 null 或者 native 包含 null 元素 
从以下版本开始：1.4 
另请参见：setFlavorsForNative(java.lang.String, java.awt.datatransfer.DataFlavor[])
addFlavorForUnencodedNativepublic void addFlavorForUnencodedNative(String nat, DataFlavor flav)添加从单个 String native 到单个 DataFlavor 的映射。与 getFlavorsForNative 不同，该映射仅是单向建立的，并且不对 native 进行编码。要建立双向映射，请同时调用 addUnencodedNativeForFlavor。新的映射优先级低于现有映射。如果从指定 String native 到指定或相等 DataFlavor 的映射已经存在，则此方法无效。
参数：nat - 该映射的 String native 键 flav - 该映射的 DataFlavor 值 抛出：NullPointerException - 如果 nat 或 flav 为 null
从以下版本开始：1.4 
另请参见：addUnencodedNativeForFlavor(java.awt.datatransfer.DataFlavor, java.lang.String)
setFlavorsForNativepublic void setFlavorsForNative(String nat, DataFlavor[] flavors)放弃指定 String native 的当前映射，而创建指定 DataFlavor 的新映射。与 getFlavorsForNative 不同，这些映射将仅是单向建立的，并且不需要对 native 进行编码。要建立双向映射，请同时调用 setNativesForFlavor。数组中的第一个 DataFlavor 表示最高优先级的映射。后续 DataFlavor 所表示的映射的优先级是递减的。
如果数组包含多个引用相等 DataFlavor 的元素，则为其中的第一个元素建立新映射，而忽略其余的元素。
建议客户机代码不要重置数据传输子系统建立的映射。此方法仅用于应用程序级的映射。
参数：nat - 映射的 String native 键 flavor - 映射的 DataFlavor 值
抛出：NullPointerException - 如果 nat 或 flavor 为 null 或者 flavor 包含 null 元素
从以下版本开始：1.4 
另请参见：setNativesForFlavor(java.awt.datatransfer.DataFlavor, java.lang.String[])
encodeJavaMIMETypepublic static StringencodeJavaMIMEType(String mimeType)编码 MIME 类型以用作 String native。MIME 类型的编码表示形式的格式是与实现有关的。仅有的限制是：
当且仅当 MIME 类型 String 为 null 时，编码表示形式为 null。
两个非 null MIME 类型 String 的编码表示形式相等的条件是，当且仅当根据 String.equals(Object) 这些 String 相等。Sun 对此方法的参考实现返回指定 MIME 类型 String，前缀为 JAVA_DATAFLAVOR:。
参数：mimeType - 要编码的 MIME 类型 返回：编码的 String，如果 mimeType 为 null，则返回 null
encodeDataFlavorpublic static StringencodeDataFlavor(DataFlavor flav)编码 DataFlavor 以用作 String native。编码的 DataFlavor 的格式是与实现有关的。仅有的限制是：
当且仅当指定 DataFlavor 为 null 或者其 MIME 类型 String 为 null 时，编码表示形式为 null。
具有非 null MIME 类型 String 的两个非 nullDataFlavor 的编码表示形式相等的条件是，根据 String.equals(Object) 当且仅当这些 DataFlavor 的 MIME 类型 String 相等。
Sun 对此方法的参考实现返回前缀为 JAVA_DATAFLAVOR: 的指定 DataFlavor 的 MIME 类型 String。
参数：flav - 要编码的 DataFlavor返回：编码的 String，如果 flav 为 null 或者具有 null MIME 类型，则返回 null
isJavaMIMETypepublic static boolean isJavaMIMEType(String str)返回指定的 String 是否为编码的 Java MIME 类型。 参数：str - 要测试的 String返回：如果对 String 进行了编码，则返回 true；否则返回 false
decodeJavaMIMEType
public static StringdecodeJavaMIMEType(String nat)解码 String native 以用作 Java MIME 类型。 参数：nat - 要解码的 String返回：解码的 Java MIME 类型，如果 nat 不是编码的 String native，则返回 null
decodeDataFlavorpublic static DataFlavordecodeDataFlavor(String nat) throws ClassNotFoundException解码 String native 以用作 DataFlavor。 
参数：nat - 要解码的 String返回：解码的 DataFlavor，如果 nat 不是编码的 String native，则返回 null抛出：ClassNotFoundException[1]