Класс DataFlavor
- Все реализуемые интерфейсы:
Externalizable, Serializable, Cloneable
public class DataFlavor extends Object implements Externalizable, Cloneable
DataFlavor предоставляет метаинформацию о данных. DataFlavor обычно используется для доступа к данным в буфере обмена или во время операции перетаскивания. Экземпляр DataFlavor инкапсулирует тип содержимого, определённый в RFC 2045 и RFC 2046. Тип содержимого обычно называют типом MIME.
Тип содержимого состоит из типа медиа (называемого основным типом), подтипа и необязательных параметров. Сведения о синтаксисе типа MIME см. в RFC 2045.
Реализация передачи данных JRE интерпретирует параметр "class" типа MIME как класс представления. Класс представления соответствует классу передаваемого объекта. Другими словами, класс представления — это тип объекта, возвращаемого методом Transferable.getTransferData(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.
Кроме того, экземпляры DataFlavor с основным типом MIME "text" могут иметь параметр "charset". Сведения о MIME-типах "text" и параметре "charset" см. в RFC 2046 и selectBestTextFlavor(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.
- Начиная с:
- 1.1
- См. также:
Краткое описание полей
| Модификатор и тип | Поле | Описание |
|---|---|---|
static final DataFlavor |
allHtmlFlavor |
Представляет фрагмент HTML-разметки. |
static final DataFlavor |
fragmentHtmlFlavor |
Представляет фрагмент HTML-разметки. |
static final DataFlavor |
imageFlavor |
DataFlavor, представляющий класс Java Image, где: |
static final DataFlavor |
javaFileListFlavor |
Для передачи списка файлов в Java (и на нижележащую платформу) или из неё используется DataFlavor этого типа/подтипа с классом представления java.util.List. |
static final String |
javaJVMLocalObjectMimeType |
Для передачи ссылки на произвольный объект Java, не имеющий связанного типа содержимого MIME, через интерфейс Transferable ВНУТРИ ОДНОЙ JVM используется DataFlavor с этим типом/подтипом и representationClass, равным типу класса/интерфейса, передаваемого через Transferable. |
static final String |
javaRemoteObjectMimeType |
Чтобы передать действующую ссылку на удалённый объект посредством операции перетаскивания ACTION_LINK, следует использовать тип содержимого MIME application/x-java-remote-object, где класс представления DataFlavor соответствует типу интерфейса Remote, который необходимо передать. |
static final String |
javaSerializedObjectMimeType |
Тип содержимого MIME application/x-java-serialized-object представляет граф сохранённых объектов Java. |
static final DataFlavor |
plainTextFlavor |
Устарело. начиная с версии 1.3. |
static final DataFlavor |
selectionHtmlFlavor |
Представляет фрагмент HTML-разметки. |
static final DataFlavor |
stringFlavor |
DataFlavor, представляющий класс Java Unicode String, где: |
Краткое описание конструкторов
| Конструктор | Описание |
|---|---|
DataFlavor() |
Создаёт новый DataFlavor. |
DataFlavor |
Создаёт DataFlavor, представляющий класс Java. |
DataFlavor |
Создаёт DataFlavor из строки mimeType. |
DataFlavor |
Создаёт DataFlavor, представляющий MimeType. |
DataFlavor |
Создаёт DataFlavor, представляющий MimeType. |
Краткое описание методов
| Модификатор и тип | Метод | Описание |
|---|---|---|
Object |
clone() |
Возвращает копию этого DataFlavor. |
boolean |
equals |
Этот метод ведёт себя так же, как equals(Object). |
boolean |
equals |
Указывает, равен ли этот объект другому объекту. |
boolean |
equals |
Устарело. Поскольку метод несовместим с контрактом hashCode(), вместо него используйте isMimeTypeEqual(String). |
final Class |
getDefaultRepresentationClass() |
Возвращает класс представления по умолчанию. |
final String |
getDefaultRepresentationClassAsString() |
Возвращает имя класса представления по умолчанию. |
String |
getHumanPresentableName() |
Возвращает понятное пользователю имя формата данных, представленного этим DataFlavor. |
String |
getMimeType() |
Возвращает строку типа MIME для этого DataFlavor. |
String |
getParameter |
Возвращает понятное пользователю имя этого DataFlavor, если paramName равно "humanPresentableName". |
String |
getPrimaryType() |
Возвращает основной тип MIME для этого DataFlavor. |
Reader |
getReaderForText |
Возвращает Reader для текстового типа данных, при необходимости декодированный с использованием ожидаемой кодировки (charset). |
Class |
getRepresentationClass() |
Возвращает Class, который объекты, поддерживающие этот DataFlavor, будут возвращать при запросе этого DataFlavor. |
String |
getSubType() |
Возвращает подтип MIME этого DataFlavor. |
static final DataFlavor |
getTextPlainUnicodeFlavor() |
Возвращает DataFlavor, представляющий обычный текст в кодировке Unicode, где: |
int |
hashCode() |
Возвращает хеш-код этого DataFlavor. |
boolean |
isFlavorJavaFileListType() |
Возвращает true, если указанный DataFlavor представляет список файловых объектов. |
boolean |
isFlavorRemoteObjectType() |
Возвращает true, если указанный DataFlavor представляет удалённый объект. |
boolean |
isFlavorSerializedObjectType() |
Возвращает true, если указанный DataFlavor представляет сериализованный объект. |
boolean |
isFlavorTextType() |
Возвращает, является ли этот DataFlavor допустимым текстовым типом данных для данной реализации платформы Java. |
final boolean |
isMimeTypeEqual |
Сравнивает mimeType двух объектов DataFlavor. |
boolean |
isMimeTypeEqual |
Возвращает, эквивалентно ли строковое представление переданного типа MIME типу MIME этого DataFlavor. |
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 |
То же, что и equals(DataFlavor). |
protected String |
normalizeMimeType |
Устарело. Эта реализация не вызывает данный метод начиная с версии 1.1. |
protected String |
normalizeMimeTypeParameter |
Устарело. Эта реализация не вызывает данный метод начиная с версии 1.1. |
void |
readExternal |
Восстанавливает этот DataFlavor из сериализованного состояния. |
static final DataFlavor |
selectBestTextFlavor |
Выбирает наилучший текстовый DataFlavor из массива DataFlavor. |
void |
setHumanPresentableName |
Задаёт понятное пользователю имя формата данных, представленного этим DataFlavor. |
String |
toString() |
Строковое представление этого DataFlavor и его параметров. |
protected static final Class |
tryToLoadClass |
Пытается загрузить класс с помощью загрузчика начального уровня, системного загрузчика, загрузчика контекста (если он имеется) и, наконец, указанного загрузчика. |
void |
writeExternal |
Сериализует этот DataFlavor. |
Методы, объявленные в классе Object
finalize, getClass, notify, notifyAll, wait, wait, wait | Модификатор и тип | Метод | Описание |
|---|---|---|
protected void |
finalize() |
Устарело, будет удалено: этот элемент API может быть удалён в будущей версии. Финализация устарела и будет удалена в одном из будущих выпусков. |
final Class |
getClass() |
Возвращает класс этого Object во время выполнения. |
final void |
notify() |
Пробуждает один поток, ожидающий на мониторе этого объекта. |
final void |
notifyAll() |
Пробуждает все потоки, ожидающие на мониторе этого объекта. |
final void |
wait() |
Переводит текущий поток в состояние ожидания до пробуждения, обычно в результате уведомления или прерывания. |
final void |
wait |
Переводит текущий поток в состояние ожидания до пробуждения, обычно в результате уведомления или прерывания, либо до истечения заданного промежутка реального времени. |
final void |
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"
Будет null, если java.awt.Image невидим, модуль java.desktop не загружен или модуль java.desktop отсутствует в образе времени выполнения.plainTextFlavor
@Deprecated public static final DataFlavor plainTextFlavor
Transferable.getTransferData(DataFlavor.plainTextFlavor) используйте getReaderForText(Transferable).DataFlavor, представляющий обычный текст в кодировке Unicode, где:
representationClass = InputStream
mimeType = "text/plain; charset=unicode"
Этот DataFlavor устарел по следующим причинам: - Его представление — InputStream, то есть 8-битное представление, тогда как Unicode — это 16-битный набор символов
- Набор символов "unicode" определён недостаточно точно. "unicode" подразумевает конкретную реализацию Unicode на определённой платформе, а не кроссплатформенную реализацию
javaSerializedObjectMimeType
public static final String javaSerializedObjectMimeType
Класс представления, связанный с этим DataFlavor, определяет тип Java-объекта, возвращаемого в виде ссылки при вызове java.awt.datatransfer.getTransferData.
- См. также:
javaFileListFlavor
public static final DataFlavor javaFileListFlavor
DataFlavor этого типа/подтипа и класс представления java.util.List. Каждый элемент списка должен/гарантированно будет иметь тип java.io.File.javaJVMLocalObjectMimeType
public static final String javaJVMLocalObjectMimeType
Transferable ВНУТРИ ОДНОЙ И ТОЙ ЖЕ JVM используется DataFlavor с этим типом/подтипом и representationClass, равным типу класса/интерфейса, передаваемого через Transferable. Ссылка на объект, возвращённая Transferable.getTransferData для DataFlavor с этим MIME Content-Type, должна быть экземпляром класса представления DataFlavor.
- См. также:
javaRemoteObjectMimeType
public static final String javaRemoteObjectMimeType
ACTION_LINK, следует использовать Mime Content Type application/x-java-remote-object, где класс представления DataFlavor определяет тип передаваемого интерфейса Remote.- См. также:
selectionHtmlFlavor
public static final DataFlavor selectionHtmlFlavor
Transferable, дополнительные изменения не вносятся. Этот экземпляр DataFlavor представляет ту же HTML-разметку, что и экземпляры DataFlavor, у которых тип содержимого MIME не содержит параметр document, а класс представления — класс String.
representationClass = String
mimeType = "text/html"
- Начиная с:
- 1.8
fragmentHtmlFlavor
public static final DataFlavor fragmentHtmlFlavor
Transferable, дополнительные изменения не вносятся.
representationClass = String
mimeType = "text/html"
- Начиная с:
- 1.8
allHtmlFlavor
public static final DataFlavor allHtmlFlavor
Transferable, дополнительные изменения не вносятся.
representationClass = String
mimeType = "text/html"
- Начиная с:
- 1.8
Подробное описание конструкторов
DataFlavor
public DataFlavor()
DataFlavor. Этот конструктор предоставлен исключительно для поддержки интерфейса Externalizable. Он не предназначен для публичного использования (клиентским кодом).- Начиная с:
- 1.2
DataFlavor
public DataFlavor(Class<?> representationClass, String humanPresentableName)
DataFlavor, представляющий класс Java. Возвращённый DataFlavor будет иметь следующие характеристики:
representationClass = representationClass mimeType = application/x-java-serialized-object
- Параметры:
-
representationClass— класс, используемый для передачи данных в этом flavor -
humanPresentableName— понятная человеку строка, используемая для идентификации этого flavor; если этот параметр равенnull, используется значение MIME Content Type - Вызывает исключение:
-
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 этого flavor; еслиmimeTypeне задаёт параметр "class=" или класс не удаётся загрузить, выбрасываетсяIllegalArgumentException -
humanPresentableName— понятная человеку строка, используемая для идентификации этого flavor; если этот параметр равенnull, используется значение MIME Content Type - Вызывает исключение:
-
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 этого flavor -
humanPresentableName— понятная человеку строка, используемая для идентификации этого flavor -
classLoader— загрузчик классов, который нужно использовать - Вызывает исключение:
-
ClassNotFoundException— если класс не загружен -
IllegalArgumentException— еслиmimeTypeнедопустим -
NullPointerException— еслиmimeTypeравенnull
DataFlavor
public DataFlavor(String mimeType) throws ClassNotFoundException
DataFlavor из строки mimeType. Строка может задавать параметр "class=<fully specified Java class name>", чтобы создать DataFlavor с требуемым классом представления. Если строка не содержит параметр "class=", по умолчанию используется java.io.InputStream.- Параметры:
-
mimeType— строка, используемая для идентификации типа MIME этого flavor; если класс, указанный параметром "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 этого flavor и его класс представления. Если этот flavor имеет основной тип MIME "text", поддерживает параметр charset и имеет кодированное представление, в него также включается кодировка flavor. Список текстовых flavors, поддерживающих параметр charset, см. в selectBestTextFlavor.getTextPlainUnicodeFlavor
public static final DataFlavor getTextPlainUnicodeFlavor()
DataFlavor, представляющий обычный текст в кодировке Unicode, где:
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. - Возвращает:
DataFlavor, представляющий обычный текст в кодировке Unicode- Начиная с:
- 1.3
selectBestTextFlavor
public static final DataFlavor selectBestTextFlavor(DataFlavor[] availableFlavors)
DataFlavor из массива DataFlavor. При выборе учитываются только DataFlavor.stringFlavor, эквивалентные им flavors, а также flavors с основным типом MIME "text". Сначала flavors сортируются по типам MIME в следующем порядке:
- "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, использующем данный тип MIME. Если параметр указан, JRE будет считать, что этот тип MIME поддерживает параметр charset, и больше не будет выполнять проверку. Если параметр не указан явно, JRE будет считать, что этот тип MIME не поддерживает параметр charset, и больше не будет выполнять проверку. Поскольку эта проверка выполняется для произвольно выбранного DataFlavor, разработчики должны указывать параметр charset во всех DataFlavor с типом MIME "text/<other>", если этот параметр поддерживается соответствующим типом MIME. Разработчикам не следует рассчитывать на то, что JRE подставит кодировку платформы по умолчанию для DataFlavor "text/<other>". Несоблюдение этого ограничения приведёт к неопределённому поведению. Если наилучший тип MIME в массиве не поддерживает параметр charset, flavors с этим типом MIME сортируются по классам представления в следующем порядке: java.io.InputStream, java.nio.ByteBuffer, [B, <все остальные>.
Если два или более flavors имеют наилучший класс представления или ни один flavor не имеет одного из трёх указанных представлений, один из этих flavors будет выбран недетерминированным образом.
Если наилучший тип MIME в массиве поддерживает параметр charset, flavors с этим типом MIME сортируются по классам представления в следующем порядке: java.io.Reader, java.lang.String, java.nio.CharBuffer, [C, <все остальные>.
Если два или более flavors имеют наилучший класс представления и это представление входит в число четырёх явно указанных, один из этих flavors будет выбран недетерминированным образом. Если же ни один 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 не имеет одного из трёх указанных представлений, один из этих flavors будет выбран недетерминированным образом.
- Параметры:
-
availableFlavors— массив доступныхDataFlavor - Возвращает:
- наилучший flavor (с наибольшей точностью соответствия) согласно указанным выше правилам или
null, еслиavailableFlavorsравенnull, имеет нулевую длину или не содержит текстовых flavors - Начиная с:
- 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. Поскольку текстовые flavors, не поддерживающие параметр charset, кодируются в нестандартном формате, этот метод не следует вызывать для таких flavors. Однако для обеспечения обратной совместимости при вызове этого метода для такого flavor он будет считать, что flavor поддерживает параметр charset, и попытается декодировать его соответствующим образом. Список текстовых flavors, не поддерживающих параметр charset, см. в selectBestTextFlavor.
- Параметры:
-
transferable—Transferable, данные которого будут запрошены в этом flavor - Возвращает:
Readerдля чтения данныхTransferable- Вызывает исключение:
-
IllegalArgumentException— если класс представления не входит в число семи перечисленных выше -
IllegalArgumentException— еслиTransferableсодержитnullданные -
NullPointerException— еслиTransferableравенnull -
UnsupportedEncodingException— если представление этого flavor —java.io.InputStream,java.nio.ByteBufferили[B, а кодировка этого flavor не поддерживается данной реализацией платформы Java -
UnsupportedFlavorException— еслиTransferableне поддерживает этот flavor -
IOException— если данные не удаётся прочитать из-за ошибки ввода-вывода - Начиная с:
- 1.3
- См. также:
getMimeType
public String getMimeType()
DataFlavor.- Возвращает:
- строку типа MIME для этого flavor
getRepresentationClass
public Class<?> getRepresentationClass()
Class, объекты которого будут возвращаться объектами, поддерживающими этот DataFlavor, при запросе этого DataFlavor.- Возвращает:
Class, который будет возвращаться объектами, поддерживающими этотDataFlavor, при запросе этогоDataFlavor
getHumanPresentableName
public String getHumanPresentableName()
DataFlavor. Это имя будет локализовано для разных стран.- Возвращает:
- понятное человеку имя формата данных, представленного этим
DataFlavor
getPrimaryType
public String getPrimaryType()
DataFlavor.- Возвращает:
- основной тип MIME этого
DataFlavor
getSubType
public String getSubType()
DataFlavor.- Возвращает:
- подтип MIME этого
DataFlavor
getParameter
public String getParameter(String paramName)
DataFlavor, если paramName равно "humanPresentableName". В противном случае возвращает значение типа MIME, связанное с paramName.- Параметры:
-
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 для класса DataFlavor реализовано следующим образом: два объекта DataFlavor считаются равными тогда и только тогда, когда совпадают их основной тип и подтип MIME, а также класс представления. Кроме того, если основной тип равен "text", подтип обозначает текстовый flavor, поддерживающий параметр charset, а класс представления не равен java.io.Reader, java.lang.String, java.nio.CharBuffer или [C, параметр charset также должен совпадать. Если кодировка явно не задана для одного или обоих объектов DataFlavor, предполагается кодировка платформы по умолчанию. Список текстовых flavors, поддерживающих параметр charset, см. в selectBestTextFlavor.
equals
public boolean equals(DataFlavor that)
equals(Object). Единственное отличие состоит в том, что в качестве параметра он принимает экземпляр DataFlavor.- Параметры:
-
that—DataFlavorдля сравнения сthis - Возвращает:
-
true, еслиthatэквивалентен этомуDataFlavor; в противном случае —false - См. также:
equals
@Deprecated public boolean equals(String s)
hashCode(), вместо него используйте isMimeTypeEqual(String).mimeType с переданным String; representationClass при сравнении не учитывается. Если требуется сравнить representationClass, можно использовать equals(new DataFlavor(s)).- Параметры:
-
s—mimeTypeдля сравнения - Возвращает:
-
true, если строка (MimeType) совпадает; в противном случае —falseили еслиsравенnull
hashCode
public int hashCode()
DataFlavor. Для двух равных объектов DataFlavor хеш-коды совпадают. Для String, соответствующего DataFlavor.equals(String), не гарантируется, что хеш-код DataFlavor совпадает с хеш-кодом String.match
public boolean match(DataFlavor that)
equals(DataFlavor).- Параметры:
-
that—DataFlavorдля сравнения сthis - Возвращает:
-
true, еслиthatэквивалентен этомуDataFlavor; в противном случае —false - Начиная с:
- 1.3
- См. также:
isMimeTypeEqual
public boolean isMimeTypeEqual(String mimeType)
DataFlavor. Параметры не учитываются при сравнении.- Параметры:
-
mimeType— строковое представление типа MIME - Возвращает:
-
true, если строковое представление переданного типа MIME эквивалентно типу MIME этогоDataFlavor; в противном случае —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?- Возвращает:
- представляет ли этот
DataFlavorjava.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()
true, если указанный DataFlavor представляет сериализованный объект.- Возвращает:
-
true, если указанныйDataFlavorпредставляет сериализованный объект
isFlavorRemoteObjectType
public boolean isFlavorRemoteObjectType()
true, если указанный DataFlavor представляет удаленный объект.- Возвращает:
-
true, если указанныйDataFlavorпредставляет удаленный объект
isFlavorJavaFileListType
public boolean isFlavorJavaFileListType()
true, если указанный DataFlavor представляет список файловых объектов.- Возвращает:
-
true, если указанныйDataFlavorпредставляетjava.util.Listиз объектовjava.io.File
isFlavorTextType
public boolean isFlavorTextType()
DataFlavor допустимым текстовым форматом для данной реализации платформы Java. Допустимыми текстовыми форматами могут быть только форматы, эквивалентные DataFlavor.stringFlavor, и DataFlavors с основным типом MIME "text". Если этот формат поддерживает параметр 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, его представлением должен быть java.io.InputStream, java.nio.ByteBuffer или [B.
Список текстовых форматов, поддерживающих параметр charset, см. в selectBestTextFlavor.
- Возвращает:
-
true, если этотDataFlavorявляется допустимым текстовым форматом, как описано выше; в противном случае —false - Начиная с:
- 1.4
- См. также:
writeExternal
public void writeExternal(ObjectOutput os) throws IOException
DataFlavor.- Определено в:
-
writeExternalв интерфейсеExternalizable - Параметры:
-
os— поток для записи объекта - Исключения:
-
IOException— включает любые возможные исключения ввода-вывода
readExternal
public void readExternal(ObjectInput is) throws IOException, ClassNotFoundException
DataFlavor из сериализованного состояния.- Определено в:
-
readExternalв интерфейсеExternalizable - Параметры:
-
is— поток для чтения данных, необходимых для восстановления объекта - Исключения:
-
IOException— если произошли ошибки ввода-вывода -
ClassNotFoundException— если не удалось найти класс восстанавливаемого объекта.
clone
public Object clone() throws CloneNotSupportedException
DataFlavor.- Переопределяет:
-
cloneв классеObject - Возвращает:
- копию этого
DataFlavor - Исключения:
-
CloneNotSupportedException— если класс объекта не поддерживает интерфейсCloneable. Подклассы, переопределяющие методclone, также могут выбрасывать это исключение, чтобы указать, что экземпляр нельзя клонировать. - См. также:
normalizeMimeTypeParameter
@Deprecated protected String normalizeMimeTypeParameter(String parameterName, String parameterValue)
DataFlavor каждого параметра типа MIME, чтобы позволить подклассам DataFlavor обрабатывать специальные параметры, например параметры charset text/plain, значения которых не чувствительны к регистру. (Предполагается, что значения параметров типа MIME чувствительны к регистру. Этот метод вызывается для каждой пары «имя/значение» параметра и должен возвращать нормализованное представление parameterValue.
- Параметры:
-
parameterName— имя параметра -
parameterValue— значение параметра - Возвращает:
- значение параметра
normalizeMimeType
@Deprecated protected String normalizeMimeType(String mimeType)
DataFlavor возможность изменить способ нормализации типов MIME. Одним из возможных применений может быть добавление пар параметр/значение по умолчанию в случаях, когда они отсутствуют в переданной строке типа MIME.- Параметры:
-
mimeType— тип MIME - Возвращает:
- тип MIME
© 1993, 2025, Oracle and/or its affiliates. All rights reserved.
Documentation extracted from Debian's OpenJDK Development Kit package.
Licensed under the GNU General Public License, version 2, with the Classpath Exception.
Various third party code in OpenJDK is licensed under different licenses (see Debian package).
Java and OpenJDK are trademarks or registered trademarks of Oracle and/or its affiliates.