JavaTM 2 Platform
Standard Ed. 6

java.awt.datatransfer
類別 DataFlavor

java.lang.Object
  繼承者 java.awt.datatransfer.DataFlavor
所有已實作的介面:
Externalizable, Serializable, Cloneable
直接已知子類別:
ActivationDataFlavor

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。當調用 getTransferData,且 DataFlavorimageFlavor 時,返回 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");
   // The following returns true.
   flavor1.equals(flavor2);
 
正如上面提到的那樣,flavor1flavor2 被認為是相等的。同樣地,請求 TransferableDataFlavor 將返回相同的結果。

有關在 Swing 中使用資料傳輸的更多資訊,請參閱 Java Tutorial 中的 How to Use Drag and Drop and Data Transfer 一節。

另請參見:
序列化表格

欄位摘要
static DataFlavor imageFlavor
          DataFlavor 表示 Java Image 類別,其中:
static DataFlavor javaFileListFlavor
          要將檔案列表傳入 Java(及底層平臺)或從中傳出,需要使用此型別/子型別的 DataFlavorjava.util.List 的表示形式類別。
static String javaJVMLocalObjectMimeType
          要將一個參考傳輸到不具有關聯 MIME Content 型別的任意 Java 物件參考(跨越同一 JVM 中的 Transferable 介面),需要使用具有此型別/子型別的 DataFlavor,其中 representationClass 等於跨越 Transferable 傳遞的類別/介面的型別。
static String javaRemoteObjectMimeType
          為了通過拖放 ACTION_LINK 操作將活動連接傳遞到 Remote 物件,應該使用 Mime Content 型別的 application/x-java-remote-object,其中 DataFlavor 的表示形式類別表示要傳輸的 Remote 介面的型別。
static String javaSerializedObjectMimeType
          MIME Content 型別的 application/x-java-serialized-object 表示已變得持久的 Java 物件的圖形。
static DataFlavor plainTextFlavor
          已過時。 從 1.3 開始。使用 DataFlavor.getReaderForText(Transferable) 代替 Transferable.getTransferData(DataFlavor.plainTextFlavor)
static DataFlavor stringFlavor
          DataFlavor 表示 Java Unicode String 類別,其中:
 
建構子摘要
DataFlavor()
          建構一個新的 DataFlavor
DataFlavor(Class<?> representationClass, String humanPresentableName)
          建構一個表示 Java 類別的 DataFlavor
DataFlavor(String mimeType)
          根據 mimeType 字元串建構 DataFlavor
DataFlavor(String mimeType, String humanPresentableName)
          建構一個表示 MimeTypeDataFlavor
DataFlavor(String mimeType, String humanPresentableName, ClassLoader classLoader)
          建構一個表示 MimeTypeDataFlavor
 
方法摘要
 Object clone()
          返回此 DataFlavor 的副本。
 boolean equals(DataFlavor that)
          測試 DataFlavor 與此 DataFlavor 的相等性。
 boolean equals(Object o)
          測試任意 Object 與此 DataFlavor 的相等性。
 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)
          獲取文本 flavor 的 Reader,如果需要,則為期望的 charset(編碼的)解碼。
 Class<?> getRepresentationClass()
          返回請求此 DataFlavor 時,支持此 DataFlavor 的物件將返回的 Class
 String getSubType()
          返回此 DataFlavor 的子 MIME 型別。
static DataFlavor getTextPlainUnicodeFlavor()
          返回表示具有 Unicode 編碼的純文本的 DataFlavor,其中: representationClass = java.io.InputStream mimeType = "text/plain; charset=<platform default Unicode encoding>" Sun 的 Microsoft Windows 實作使用編碼 utf-16le
 int hashCode()
          返回此 DataFlavor 的雜湊碼。
 boolean isFlavorJavaFileListType()
          如果指定的 DataFlavor 表示 File 物件列表,則返回 true。
 boolean isFlavorRemoteObjectType()
          如果指定的 DataFlavor 表示遠端物件,則返回 true。
 boolean isFlavorSerializedObjectType()
          如果指定的 DataFlavor 表示序列化物件,則返回 true。
 boolean isFlavorTextType()
          返回此 DataFlavor 是否是 Java 平臺此實作的有效文本 flavor。
 boolean isMimeTypeEqual(DataFlavor dataFlavor)
          比較兩個 DataFlavor 物件的 mimeType
 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()
          如果表示形式類別為 Remote,則返回 true。
 boolean isRepresentationClassSerializable()
          如果表示形式類別可序列化,則返回 true。
 boolean match(DataFlavor that)
          測試 DataFlavor 與此 DataFlavor 的相等性。
protected  String normalizeMimeType(String mimeType)
          已過時。  
protected  String normalizeMimeTypeParameter(String parameterName, String parameterValue)
          已過時。  
 void readExternal(ObjectInput is)
          根據 Serialized 狀態還原此 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
 
從類別 java.lang.Object 繼承的方法
finalize, getClass, notify, notifyAll, wait, wait, wait
 

欄位詳細資訊

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"
 


plainTextFlavor

@Deprecated
public static final DataFlavor plainTextFlavor
已過時。 從 1.3 開始。使用 DataFlavor.getReaderForText(Transferable) 代替 Transferable.getTransferData(DataFlavor.plainTextFlavor)
DataFlavor 表示使用 Unicode 編碼的純文本,其中:
     representationClass = InputStream
     mimeType            = "text/plain; charset=unicode"
 
DataFlavor過時,因為 (1) 其表示形式為 InputStream,一個基於 8 位的表示形式,而 Unicode 是一個 16 位的字元集;(2) charset "unicode" 意義不明確。"unicode" 意味著特定平臺的 Unicode 實作,而不是跨平臺的實作。


javaSerializedObjectMimeType

public static final String javaSerializedObjectMimeType
MIME Content 型別的 application/x-java-serialized-object 表示已變得持久的 Java 物件的圖形。與此 DataFlavor 關聯的表示形式類別可以標識物件的 Java 型別,這裡的物件指調用 java.awt.datatransfer.getTransferData 時作為參考返回的物件。

另請參見:
常數欄位值

javaFileListFlavor

public static final DataFlavor javaFileListFlavor
要將檔案列表傳入 Java(及底層平臺)或從中傳出,需要使用此型別/子型別的 DataFlavorjava.util.List 的表示形式類別。要求/保證列表的每個元素都是 java.io.File 型別。


javaJVMLocalObjectMimeType

public static final String javaJVMLocalObjectMimeType
要將一個參考傳輸到不具有關聯 MIME Content 型別的任意 Java 物件參考(跨越同一 JVM 中的 Transferable 介面),需要使用具有此型別/子型別的 DataFlavor,其中 representationClass 等於跨越 Transferable 傳遞的類別/介面的型別。

對於具有此 MIME Content 型別的 DataFlavor,從 Transferable.getTransferData 返回的物件參考必須是 DataFlavor 的表示形式類別的實例。

另請參見:
常數欄位值

javaRemoteObjectMimeType

public static final String javaRemoteObjectMimeType
為了通過拖放 ACTION_LINK 操作將活動連接傳遞到 Remote 物件,應該使用 Mime Content 型別的 application/x-java-remote-object,其中 DataFlavor 的表示形式類別表示要傳輸的 Remote 介面的型別。

另請參見:
常數欄位值
建構子詳細資訊

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 Content 型別的值
拋出:
NullPointerException - 如果 representationClass 為 null

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 Content 型別的值
拋出:
IllegalArgumentException - 如果 mimeType 無效或者沒有成功載入類別
NullPointerException - 如果 mimeType 為 null

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 - 如果 mimeType 為 null

DataFlavor

public DataFlavor(String mimeType)
           throws ClassNotFoundException
根據 mimeType 字元串建構 DataFlavor。該字元串可以指定 "class=" 參數,以創建具有所需表示形式類別的 DataFlavor。如果字元串不包含 "class=" 參數,則使用 java.io.InputStream 作為預設值。

參數:
mimeType - 用於標識此 flavor 的 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 類別的名稱、此 flavor 的 MIME 型別及其表示形式類別。如果此 flavor 具有 "text" 的基本 MIME 型別、支持 charset 參數並且具有編碼的表示形式,則還包括 flavor 的 charset。有關支持 charset 參數的文本 flavor 列表,請參閱 selectBestTextFlavor

覆寫:
類別 Object 中的 toString
返回:
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>"
 
Sun 的 Microsoft Windows 實作使用編碼 utf-16le。Sun 的 Solaris 和 Linux 實作使用編碼 iso-10646-ucs-2

返回:
表示具有 Unicode 編碼的純文本的 DataFlavor
從以下版本開始:
1.3

selectBestTextFlavor

public static final DataFlavor selectBestTextFlavor(DataFlavor[] availableFlavors)
DataFlavor 陣列中選擇最佳文本 DataFlavor。只能選擇 DataFlavor.stringFlavor、等效 flavor 和具有基本 MIME "text" 型別的 flavor。

首先 Flavor 按照其 MIME 型別排序,順序如下所示:

例如,在 "text/html" 上選擇 "text/sgml",在 DataFlavor.plainTextFlavor 上選擇 DataFlavor.stringFlavor

如果兩個或更多 flavor 共享陣列中的最佳 MIME 型別,則需要檢查 MIME 型別以查看它是否支持 charset 參數。

以下 MIME 型別支持(或被視為支持)charset 參數:

以下 MIME 型別不支持(或被視為不支持)charset 參數: 對於 "text/<other>" MIME 型別,首先 JRE 需要確定 MIME 型別是否支持 charset 參數,它將檢查該參數是否顯式列入任意選擇的使用該 MIME 型別的 DataFlavor 中。如果是這樣,則 JRE 將假定從該點開始,MIME 型別支持 charset 參數,並且不再進行檢查。如果沒有顯式列入該參數,則 JRE 將假定從該點開始,MIME 型別不支持 charset 參數,並且不再進行檢查。因為此檢查是在任意選擇的 DataFlavor 上執行的,所以如果 MIME 型別支持 charset 參數,開發人員就必須確保所有具有該 "text/<other>" MIME 型別的 DataFlavor 指定了該參數。開發人員不應該依賴 JRE 用平臺的預設 charset 來替代 "text/<other>" DataFlavor。不遵守此限制將導致不確定的行為。

如果陣列中的最佳 MIME 型別不支持 charset 參數,則共享 MIME 型別的 flavor 按照其表示形式類別排序,順序如下所示:java.io.InputStreamjava.nio.ByteBuffer[B、<其他>。

如果兩個或多個 flavor 共享最佳表示形式類別,或者任何 flavor 都不具有三個指定的表示形式中的一個,則隨意地選擇這些 flavor 中的一個。

如果陣列中的最佳 MIME 型別支持 charset 參數,則共享 MIME 型別的 flavor 按照其表示形式類別排序,順序如下所示:java.io.Readerjava.lang.Stringjava.nio.CharBuffer[C、<其他>。

如果兩個或多個 flavor 共享最佳表示形式類別,並且該表示形式是明確列出的四個表示形式中的一個,則非隨意地選擇這些 flavor 中的一個。但是,如果任何 flavor 都不是四個指定的表示形式中的一個,則通過其 charset 對 flavor 排序。Unicode charset,如 "UTF-16"、"UTF-8"、"UTF-16BE"、"UTF-16LE" 及其別名被認為是最佳的。其次選擇平臺預設的 charset 及其別名。"US-ASCII" 及其別名最差。所有其他 charset 都是按字母順序選擇的,但是只考慮 Java 平臺的此實作所支持的 charset。

如果兩個或更多 flavor 共享最佳 charset,則 flavor 再次按照其表示形式類別排序,順序如下所示:java.io.InputStreamjava.nio.ByteBuffer[B、<其他>。

如果兩個或多個 flavor 共享最佳表示形式類別,或者任何 flavor 都不具有三個指定的表示形式中的一個,則非隨意地選擇這些 flavor 中的一個。

參數:
availableFlavors - 可用 DataFlavor 的陣列
返回:
按照以上指定規則的最佳(最高保真度)flavor;如果 availableFlavorsnull、長度為零或包含非文本 flavor,則返回 null
從以下版本開始:
1.3

getReaderForText

public Reader getReaderForText(Transferable transferable)
                        throws UnsupportedFlavorException,
                               IOException
獲取文本 flavor 的 Reader,如果需要,則為期望的 charset(編碼的)解碼。受支持的表示形式類別有:java.io.Readerjava.lang.Stringjava.nio.CharBuffer[Cjava.io.InputStreamjava.nio.ByteBuffer[B

因為不支持 charset 參數的文本 flavor 是以非標準格式編碼的,所以應為這種 flavor 調用此方法。但是,為了維護向後相容性,如果為這樣的 flavor 調用了此方法,那麼此方法會將該 flavor 視為支持 charset 參數,並相應地嘗試為其解碼。有關不支持 charset 參數的文本 flavor 列表,請參閱 selectBestTextFlavor

參數:
transferable - 將在此 flavor 中請求其資料的 Transferable
返回:
要讀取 Transferable 資料的 Reader
拋出:
IllegalArgumentException - 如果表示形式類別不是上文列出的七種之一
IllegalArgumentException - 如果 Transferable 套件含 null 資料
NullPointerException - 如果 Transferablenull
UnsupportedEncodingException - 如果此 flavor 的表示形式為 java.io.InputStreamjava.nio.ByteBuffer[B,但 Java 平臺的此實作不支持此 flavor 的編碼
UnsupportedFlavorException - 如果 Transferable 不支持此 flavor
IOException - 如果因 I/O 錯誤而無法讀取資料
從以下版本開始:
1.3
另請參見:
selectBestTextFlavor(java.awt.datatransfer.DataFlavor[])

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 - 請求的參數名
返回:
name 參數的值;如果不存在關聯值,則返回 null

setHumanPresentableName

public void setHumanPresentableName(String humanPresentableName)
設置此 DataFlavor 表示的資料格式的得體的名稱。此名稱將由各個國家/地區來本地化。

參數:
humanPresentableName - 新的得體的名稱

equals

public boolean equals(Object o)
測試任意 Object 與此 DataFlavor 的相等性。當且僅當兩個 DataFlavor 的 MIME 基本型別、子型別和表示形式類別都相等時,才認為它們是相等的。此外,如果基本型別為 "text",子型別表示支持 charset 參數的文本 flavor,而表示形式類別不是 java.io.Readerjava.lang.Stringjava.nio.CharBuffer[C,則 charset 參數也一定要相等。如果沒有為一個或兩個 DataFlavor 顯式指定 charset,則假定使用平臺預設的編碼。有關支持 charset 參數的文本 flavor 列表,請參閱 selectBestTextFlavor

覆寫:
類別 Object 中的 equals
參數:
o - 要與 this 相比較的 Object
返回:
如果 that 等於此 DataFlavor,則返回 true;否則返回 false
另請參見:
selectBestTextFlavor(java.awt.datatransfer.DataFlavor[])

equals

public boolean equals(DataFlavor that)
測試 DataFlavor 與此 DataFlavor 的相等性。當且僅當兩個 DataFlavor 的 MIME 基本型別、子型別和表示形式類別都相等時,才認為它們是相等的。此外,如果基本型別為 "text",子型別表示支持 charset 參數的文本 flavor,而表示形式類別不是 java.io.Readerjava.lang.Stringjava.nio.CharBuffer[C,則 charset 參數也一定要相等。如果沒有為一個或兩個 DataFlavor 顯式指定 charset,則假定使用平臺預設的編碼。有關支持 charset 參數的文本 flavor 的列表,請參閱 selectBestTextFlavor

參數:
that - 要與 this 相比較的 DataFlavor
返回:
如果 that 等於此 DataFlavor,則返回 true;否則返回 false
另請參見:
selectBestTextFlavor(java.awt.datatransfer.DataFlavor[])

equals

@Deprecated
public boolean equals(String s)
已過時。 hashCode() 協定不一致,使用 isMimeTypeEqual(String) 代替。

只比較 mimeType 與傳入的 String,在比較中不考慮 representationClass。如果需要比較 representationClass,則可以使用 equals(new DataFlavor(s))

返回:
如果 String (MimeType) 相等,則返回 true。

hashCode

public int hashCode()
返回此 DataFlavor 的雜湊碼。對於兩個相等的 DataFlavor,其雜湊碼也相等。對於與 DataFlavor.equals(String) 比對的 String,不保證 DataFlavor 的雜湊碼等於 String 的雜湊碼。

覆寫:
類別 Object 中的 hashCode
返回:
DataFlavor 的雜湊碼
另請參見:
Object.equals(java.lang.Object), Hashtable

match

public boolean match(DataFlavor that)
測試 DataFlavor 與此 DataFlavor 的相等性。當且僅當兩個 DataFlavor 的 MIME 基本型別、子型別和表示形式類別都相等時,才認為它們是相等的。此外,如果基本型別為 "text",子型別表示支持 charset 參數的文本 flavor,而表示形式類別不是 java.io.Readerjava.lang.Stringjava.nio.CharBuffer[C,則 charset 參數也一定要相等。如果沒有為一個或兩個 DataFlavor 顯式指定 charset,則假定使用平臺預設的編碼。有關支持 charset 參數的文本 flavor 的列表,請參閱 selectBestTextFlavor

參數:
that - 要與 this 相比較的 DataFlavor
返回:
如果 that 等於此 DataFlavor,則返回 true;否則返回 false
從以下版本開始:
1.3
另請參見:
selectBestTextFlavor(java.awt.datatransfer.DataFlavor[])

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


isRepresentationClassReader

public boolean isRepresentationClassReader()
返回此 DataFlavor 的表示形式類別是 java.io.Reader 還是其子類別。

從以下版本開始:
1.4

isRepresentationClassCharBuffer

public boolean isRepresentationClassCharBuffer()
返回此 DataFlavor 的表示形式類別是 java.nio.CharBuffer 還是其子類別。

從以下版本開始:
1.4

isRepresentationClassByteBuffer

public boolean isRepresentationClassByteBuffer()
返回此 DataFlavor 的表示形式類別是 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 表示 File 物件列表,則返回 true。

返回:
如果指定的 DataFlavor 表示 File 物件列表,則返回 true。

isFlavorTextType

public boolean isFlavorTextType()
返回此 DataFlavor 是否是 Java 平臺此實作的有效文本 flavor。只有等於 DataFlavor.stringFlavorDataFlavor,並且其基本 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。

如果此 flavor 不支持 charset 參數,則其表示形式必須為 java.io.InputStreamjava.nio.ByteBuffer[B

有關支持 charset 參數的文本 flavor 的列表,請參閱 selectBestTextFlavor

返回:
如果此 DataFlavor 為上述有效文本 flavor,則返回 true;否則返回 false
從以下版本開始:
1.4
另請參見:
selectBestTextFlavor(java.awt.datatransfer.DataFlavor[])

writeExternal

public void writeExternal(ObjectOutput os)
                   throws IOException
序列化此 DataFlavor

指定者:
介面 Externalizable 中的 writeExternal
參數:
os - 要寫入物件的串流
拋出:
IOException - 套件含可能發生的所有 I/O 異常

readExternal

public void readExternal(ObjectInput is)
                  throws IOException,
                         ClassNotFoundException
根據 Serialized 狀態還原此 DataFlavor

指定者:
介面 Externalizable 中的 readExternal
參數:
is - 為了恢復物件而從中讀取資料的串流
拋出:
IOException - 如果發生 I/O 錯誤
ClassNotFoundException - 如果無法找到需要恢復的某個物件的類別。

clone

public Object clone()
             throws CloneNotSupportedException
返回此 DataFlavor 的副本。

覆寫:
類別 Object 中的 clone
返回:
DataFlavor 的副本
拋出:
CloneNotSupportedException - 如果物件的類別不支持 Cloneable 介面,則覆寫 clone 方法的子類別也會拋出此異常,以指示無法複製某個實例。
另請參見:
Cloneable

normalizeMimeTypeParameter

@Deprecated
protected String normalizeMimeTypeParameter(String parameterName,
                                                       String parameterValue)
已過時。 

為每個 MIME 型別參數對 DataFlavor 調用此方法可以使 DataFlavor 的子類別處理特定參數,如文本/純文本 charset 參數,其值是區分大小寫的。(假定 MIME 型別參數值區分大小寫。)

為每個參數名/值對調用此方法,應該返回 parameterValue 的標準化表示形式。 從 1.1 版本開始,此實作不再調用此方法。


normalizeMimeType

@Deprecated
protected String normalizeMimeType(String mimeType)
已過時。 

為每個 MIME 型別字元串調用此方法可以使 DataFlavor 子型別有機會更改實作 MIME 型別標準化的方式。一種可能的使用情況是添加預設的參數/值對,以防傳入的 MIME 型別字元串中參數/值對不存在的情況。 從 1.1 版本開始,此實作不再調用此方法。


JavaTM 2 Platform
Standard Ed. 6

提交錯誤或意見

版權所有 2008 Sun Microsystems, Inc. 保留所有權利。請遵守GNU General Public License, version 2 only