Класс DataFlavor
- java.lang.Object
-
- java.awt.datatransfer.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(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.
Также экземпляры DataFlavor с основным типом MIME "text" могут иметь параметр "charset". Подробности о типах MIME "text" и параметре "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.
- С тех пор:
- 1.1
- См. также:
- Сериализованная форма
Поля
| Модификатор и тип | Поле | Описание |
|---|---|---|
static DataFlavor | allHtmlFlavor | Представляет фрагмент HTML разметки. |
static DataFlavor | fragmentHtmlFlavor | Представляет фрагмент HTML разметки. |
static DataFlavor | imageFlavor | Класс |
static DataFlavor | javaFileListFlavor | Для передачи списка файлов в/из Java (и платформы) используется тип/подтип |
static String | javaJVMLocalObjectMimeType | Для передачи ссылки на произвольный объект Java без связанного типа MIME через интерфейс |
static String | javaRemoteObjectMimeType | Для передачи активной ссылки на удалённый объект через операцию перетаскивания |
static String | javaSerializedObjectMimeType | Тип MIME application/x-java-serialized-object представляет собой граф объектов Java, которые были сделаны постоянными. |
static DataFlavor | plainTextFlavor | Устарело. с версии 1.3. |
static DataFlavor | selectionHtmlFlavor | Представляет фрагмент HTML разметки. |
static DataFlavor | stringFlavor | Класс |
Конструкторы
| Конструктор | Описание |
|---|---|
DataFlavor() | Создаёт новый объект |
DataFlavor(Class<?> representationClass,
String humanPresentableName) | Создаёт объект |
DataFlavor(String mimeType) | Создаёт объект |
DataFlavor(String mimeType,
String humanPresentableName) | Создаёт объект |
DataFlavor(String mimeType,
String humanPresentableName,
ClassLoader classLoader) | Создаёт объект |
Методы
| Модификатор и тип | Метод | Описание |
|---|---|---|
Object | clone() | Возвращает клон этого |
boolean | equals(DataFlavor that) | Этот метод имеет такое же поведение, как |
boolean | equals(Object o) | Указывает, является ли какой-либо другой объект "равным" этому объекту. |
boolean | equals(String s) | Устарело. Ввиду несовместимости с контрактом hashCode() используйте isMimeTypeEqual(String) вместо этого. |
Class<?> | getDefaultRepresentationClass() | Возвращает класс представления по умолчанию. |
String | getDefaultRepresentationClassAsString() | Возвращает имя класса представления по умолчанию. |
String | getHumanPresentableName() | Возвращает удобочитаемое имя формата данных, который представляет этот |
String | getMimeType() | Возвращает строку MIME-типа для этого |
String | getParameter(String paramName) | Возвращает удобочитаемое имя для этого |
String | getPrimaryType() | Возвращает первичный MIME-тип для этого |
Reader | getReaderForText(Transferable transferable) | Получает объект Reader для текстового представления, декодированный, при необходимости, для ожидаемого набора символов (кодировки). |
Class<?> | getRepresentationClass() | Возвращает |
String | getSubType() | Возвращает подтип MIME-типа для этого |
static DataFlavor | getTextPlainUnicodeFlavor() | Возвращает |
int | hashCode() | Возвращает код хэша для этого |
boolean | isFlavorJavaFileListType() | Возвращает |
boolean | isFlavorRemoteObjectType() | Возвращает |
boolean | isFlavorSerializedObjectType() | Возвращает |
boolean | isFlavorTextType() | Возвращает, является ли этот |
boolean | isMimeTypeEqual(DataFlavor dataFlavor) | Сравнивает |
boolean | isMimeTypeEqual(String mimeType) | Возвращает, эквивалентен ли строковый формат MIME-типа, переданного в качестве параметра, MIME-типу этого |
boolean | isMimeTypeSerializedObject() | Представляет ли |
boolean | isRepresentationClassByteBuffer() | Возвращает, является ли класс представления для этого |
boolean | isRepresentationClassCharBuffer() | Возвращает, является ли класс представления для этого |
boolean | isRepresentationClassInputStream() | Представляет ли |
boolean | isRepresentationClassReader() | Возвращает, является ли класс представления для этого |
boolean | isRepresentationClassRemote() | Возвращает |
boolean | isRepresentationClassSerializable() | Возвращает |
boolean | match(DataFlavor that) | Идентично |
protected String | normalizeMimeType(String mimeType) | Устарело. Этот метод никогда не вызывается реализацией начиная с версии 1.1 |
protected String | normalizeMimeTypeParameter(String parameterName,
String parameterValue) | Устарело. Этот метод никогда не вызывается реализацией начиная с версии 1.1 |
void | readExternal(ObjectInput is) | Восстанавливает этот |
static DataFlavor | selectBestTextFlavor(DataFlavor[] availableFlavors) | Выбирает лучшее текстовое |
void | setHumanPresentableName(String humanPresentableName) | Устанавливает удобочитаемое имя формата данных, которое представляет этот |
String | toString() | Строковое представление этого |
protected static Class<?> | tryToLoadClass(String className,
ClassLoader fallback) | Пытается загрузить класс из: загрузчика Bootstrap, системного загрузчика, контекстного загрузчика (если он присутствует) и, наконец, указанного загрузчика. |
void | writeExternal(ObjectOutput os) | Сериализует этот |
Методы, объявленные в классе java.lang.Object
finalize, getClass, notify, notifyAll, wait, wait, wait Поля
stringFlavor
public static final DataFlavor stringFlavor
Представляет класс Java Unicode String, где:
representationClass = java.lang.String
mimeType = "application/x-java-serialized-object" imageFlavor
public static final DataFlavor imageFlavor
Представляет класс 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
getReaderForText(java.awt.datatransfer.Transferable) вместо Transferable.getTransferData(DataFlavor.plainTextFlavor).Представляет обычный текст с кодировкой Unicode, где:
representationClass = InputStream
mimeType = "text/plain; charset=unicode" Этот DataFlavor устарел, потому что: - Его представление — это поток ввода (InputStream), основанный на 8-битной кодировке, в то время как Unicode — 16-битная кодировка символов
- Кодировка "unicode" не определена однозначно. "unicode" подразумевает реализацию Unicode на конкретной платформе, а не кроссплатформенную реализацию
javaSerializedObjectMimeType
public static final String javaSerializedObjectMimeType
MIME Content-Type application/x-java-serialized-object представляет граф объектов Java, которые были сохранены.
Класс представления, связанный с этим DataFlavor, идентифицирует тип Java объекта, возвращаемого в качестве ссылки в результате вызова java.awt.datatransfer.getTransferData.
- См. также:
- Значения константных полей
javaFileListFlavor
public static final DataFlavor javaFileListFlavor
Для передачи списка файлов в/из Java (и лежащей в основе платформы) используется DataFlavor данного типа/подтипа и класса представления java.util.List. Каждый элемент списка должен/гарантируется, что он является типом java.io.File.
javaJVMLocalObjectMimeType
public static final String javaJVMLocalObjectMimeType
Для передачи ссылки на произвольный объект Java, у которого нет связанного MIME Content-type, через интерфейс 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 DataFlavor selectionHtmlFlavor
Представляет фрагмент HTML-разметки. Разметка состоит из части, выбранной на стороне источника. Поэтому некоторые теги в разметке могут быть неспарены. Если для представления данных используется вкус в экземпляре Transferable, то дополнительные изменения не будут внесены. Этот экземпляр DataFlavor представляет ту же HTML-разметку, что и экземпляры DataFlavor, чья кодировка 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) Создает DataFlavor, представляющий класс Java.
Возвращаемый DataFlavor будет иметь следующие характеристики:
representationClass = representationClass
mimeType = application/x-java-serialized-object
- Параметры:
-
representationClass- класс, используемый для передачи данных в этом вкусе -
humanPresentableName- удобочитаемая строка, используемая для идентификации этого вкуса; если этот параметрnullтогда используется значение MIME Content Type - Исключения:
-
NullPointerException- еслиrepresentationClassnull
DataFlavor
public DataFlavor(String mimeType,
String humanPresentableName) Создает DataFlavor, представляющий MimeType.
Возвращаемый DataFlavor будет иметь следующие характеристики:
Если mimeType равно "application/x-java-serialized-object; class=<класс-представление>", результат эквивалентен вызову new DataFlavor(Class.forName(<representation class>).
В противном случае:
representationClass = InputStream
mimeType = mimeType
- Параметры:
-
mimeType- строка, используемая для идентификации MIME-типа для этого вкуса; еслиmimeTypeне указывает параметр "class=", или класс не загружается успешно, то выбрасываетсяIllegalArgumentException -
humanPresentableName- удобочитаемая строка, используемая для идентификации этого вкуса; если этот параметрnullтогда используется значение MIME Content Type - Исключения:
-
IllegalArgumentException- еслиmimeTypeнедействительно или класс не загружается успешно -
NullPointerException- еслиmimeTypenull
DataFlavor
public DataFlavor(String mimeType,
String humanPresentableName,
ClassLoader classLoader)
throws ClassNotFoundException Создает DataFlavor, представляющий MimeType.
Возвращаемый DataFlavor будет иметь следующие характеристики:
Если mimeType равен "application/x-java-serialized-object; class=<класс-представление>", результат эквивалентен вызову new DataFlavor(Class.forName(<representation class>).
В противном случае:
representationClass = InputStream
mimeType = mimeType
- Параметры:
-
mimeType- строка, используемая для идентификации MIME-типа для этого вкуса -
humanPresentableName- удобочитаемая строка, используемая для идентификации этого вкуса -
classLoader- загрузчик классов, который необходимо использовать - Исключения:
-
ClassNotFoundException- если класс не загружен -
IllegalArgumentException- еслиmimeTypeнедействительно -
NullPointerException- еслиmimeTypenull
DataFlavor
public DataFlavor(String mimeType)
throws ClassNotFoundException Создает DataFlavor из строки mimeType. Строка может указывать параметр "class=<полное имя класса Java>" для создания DataFlavor с нужным классом представления. Если строка не содержит параметра "class=", java.io.InputStream используется по умолчанию.
- Параметры:
-
mimeType- строка, используемая для идентификации MIME-типа для этого вкуса; если класс, указанный параметром "class=", не загружается успешно, то выбрасываетсяClassNotFoundException - Исключения:
-
ClassNotFoundException- если класс не загружен -
IllegalArgumentException- еслиmimeTypeнедействительно -
NullPointerException- еслиmimeTypenull
Методы
tryToLoadClass
protected static final Class<?> tryToLoadClass(String className,
ClassLoader fallback)
throws ClassNotFoundException Попытка загрузить класс из: загрузчика Bootstrap, системного загрузчика, загрузчика контекста (если он присутствует) и, наконец, указанного загрузчика.
- Параметры:
-
className- имя класса для загрузки -
fallback- загрузчик по умолчанию - Возвращает:
- загруженный класс
- Исключение:
-
ClassNotFoundException- если класс не найден
toString
public String toString()
Строковое представление этого DataFlavor и его параметров. Результирующая строка содержит имя класса DataFlavor, MIME-тип этого экземпляра и класс его представления. Если у этого экземпляра первичный MIME-тип "text", он поддерживает параметр charset и имеет закодированное представление, то также включается charset данного экземпляра. См. selectBestTextFlavor для списка текстовых форматов, которые поддерживают параметр charset.
- Переопределяет:
-
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>" - Примечание реализации:
- Реализация 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-типам в следующем порядке:
- "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.
Если два или более формата имеют лучший 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, разработчики должны гарантировать, что все DataFlavor с MIME-типом "text/<other>" указывают параметр charset, если он поддерживается этим MIME-типом. Разработчики никогда не должны полагаться на JRE для замены платформенной кодировки по умолчанию для DataFlavor "text/<other>". Несоблюдение этого ограничения приведет к неопределенному поведению. Если лучший MIME-тип в массиве не поддерживает параметр charset, то форматы, которые имеют этот MIME-тип, будут отсортированы по классам представления в следующем порядке: java.io.InputStream, java.nio.ByteBuffer, [B, <все остальные>.
Если два или более формата имеют лучший класс представления, или если ни один формат не имеет одного из трех указанных представлений, то один из этих форматов будет выбран непредсказуемо.
Если лучший MIME-тип в массиве поддерживает параметр charset, то форматы, которые имеют этот MIME-тип, будут отсортированы по классам представления в следующем порядке: java.io.Reader, java.lang.String, java.nio.CharBuffer, [C, <все остальные>.
Если два или более формата имеют лучший класс представления, и это представление является одним из четырех явно перечисленных, то один из этих форматов будет выбран непредсказуемо. Однако, если ни один формат не имеет одного из четырех указанных представлений, форматы будут отсортированы по кодировкам. Кодировки Unicode, такие как "UTF-16", "UTF-8", "UTF-16BE", "UTF-16LE" и их псевдонимы, считаются лучшими. За ними следуют платформенная кодировка по умолчанию и её псевдонимы. "US-ASCII" и его псевдонимы – худшие. Все остальные кодировки выбираются в алфавитном порядке, но будут рассмотрены только кодировки, поддерживаемые данной реализацией Java платформы.
Если два или более формата имеют лучшую кодировку, форматы будут повторно отсортированы по классам представления в следующем порядке: java.io.InputStream, java.nio.ByteBuffer, [B, <все остальные>.
Если два или более формата имеют лучший класс представления, или если ни один формат не имеет одного из трех указанных представлений, то один из этих форматов будет выбран непредсказуемо.
- Параметры:
-
availableFlavors- массив доступныхDataFlavor - Возвращает:
- лучший (наиболее точный) формат согласно правилам, описанным выше, или
null, еслиavailableFlavorsпуст, имеет нулевую длину или не содержит текстовых форматов - С:
- 1.3
getReaderForText
public Reader getReaderForText(Transferable transferable)
throws UnsupportedFlavorException,
IOException Получает объект Reader для текстового формата, при необходимости декодированного для ожидаемой кодировки (encoding). Поддерживаемые классы представлений: java.io.Reader, java.lang.String, java.nio.CharBuffer, [C, java.io.InputStream, java.nio.ByteBuffer, и [B.
Поскольку текстовые форматы, не поддерживающие параметр charset, закодированы в нестандартном формате, этот метод не следует вызывать для таких форматов. Однако, чтобы обеспечить обратную совместимость, если этот метод вызывается для такого формата, этот метод будет обрабатывать формат как будто он поддерживает параметр charset и попытается декодировать его соответствующим образом. См. selectBestTextFlavor для списка текстовых форматов, которые не поддерживают параметр charset.
- Параметры:
-
transferable-Transferable, данные которого будут запрошены в этом формате - Возвращает:
- объект
Readerдля чтения данныхTransferable - Исключение:
-
IllegalArgumentException- если класс представления не является одним из семи перечисленных выше -
IllegalArgumentException- еслиTransferableимеет данныеnull -
NullPointerException- еслиTransferableявляетсяnull -
UnsupportedEncodingException- если представление данного формата являетсяjava.io.InputStream,java.nio.ByteBuffer, или[B, а кодировка данного формата не поддерживается данной реализацией Java платформы -
UnsupportedFlavorException- еслиTransferableне поддерживает данный формат -
IOException- если данные не могут быть прочитаны из-за ошибки ввода-вывода - С:
- 1.3
- См. также:
selectBestTextFlavor(java.awt.datatransfer.DataFlavor[])
getMimeType
public String getMimeType()
Возвращает строку MIME-типа для этого DataFlavor.
- Возвращает:
- строку MIME-типа для данного формата
getRepresentationClass
public Class<?> getRepresentationClass()
Возвращает Class, которое объекты, поддерживающие этот DataFlavor, вернут при запросе этого DataFlavor.
- Возвращает:
- класс
Class, который объекты, поддерживающие этотDataFlavor, вернут при запросе этогоDataFlavor
getHumanPresentableName
public String getHumanPresentableName()
Возвращает удобочитаемое имя формата данных, которое представляет этот DataFlavor. Это имя может быть локализовано для разных стран.
- Возвращает:
- удобочитаемое имя формата данных, которое представляет этот
DataFlavor
getPrimaryType
public String getPrimaryType()
Возвращает основной MIME-тип для этого DataFlavor.
- Возвращает:
- основной MIME-тип этого
DataFlavor
getSubType
public String getSubType()
Возвращает подтип MIME-типа для этого DataFlavor.
- Возвращает:
- подтип MIME-типа этого
DataFlavor
getParameter
public String getParameter(String paramName)
Возвращает удобочитаемое имя для данного DataFlavor если paramName равно "humanPresentableName". В противном случае возвращает значение MIME-типа, связанное с paramName.
- Параметры:
-
paramName- имя запрашиваемого параметра - Возвращает:
- значение параметра, или
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, этот метод возвращает true, если и только если x и y ссылаются на один и тот же объект (x == y имеет значение true).
Обратите внимание, что обычно необходимо переопределить метод hashCode, когда переопределяется этот метод, чтобы поддерживать общий контракт для метода hashCode, который гласит, что равные объекты должны иметь равные хэш-коды.
Сравнение equals для класса DataFlavor реализовано следующим образом: два DataFlavor считаются равными, если и только если их основной тип и подтип MIME и класс представления равны. Кроме того, если основной тип равен "text", подтип обозначает тип текста, который поддерживает параметр charset, и класс представления не java.io.Reader, java.lang.String, java.nio.CharBuffer или [C, параметр charset также должен быть равен. Если кодировка charset не указана явно для одного или обоих DataFlavor, предполагается кодировка по умолчанию платформы. См. selectBestTextFlavor для списка типов текста, которые поддерживают параметр charset.
- Переопределяет:
-
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для сравнения - Возвращает:
-
true, если строка (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 типу MIME этого 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 или его подклассом.
- Возвращает:
- является ли класс представления для этого
DataFlavorjava.io.Readerили его подклассом - С версии:
- 1.4
isRepresentationClassCharBuffer
public boolean isRepresentationClassCharBuffer()
Возвращает, является ли класс представления для этого DataFlavor java.nio.CharBuffer или его подклассом.
- Возвращает:
- является ли класс представления для этого
DataFlavorjava.nio.CharBufferили его подклассом - С версии:
- 1.4
isRepresentationClassByteBuffer
public boolean isRepresentationClassByteBuffer()
Возвращает, является ли класс представления для этого DataFlavor java.nio.ByteBuffer или его подклассом.
- Возвращает:
- является ли класс представления для этого
DataFlavorjava.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 и DataFlavor с первичным 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 не указан, предполагается платформа по умолчанию, которая всегда поддерживается.
Если этот тип не поддерживает параметр charset, его представление должно быть java.io.InputStream, java.nio.ByteBuffer, или [B.
См. selectBestTextFlavor для списка типов текста, которые поддерживают параметр charset.
- Возвращает:
-
trueесли этотDataFlavorявляется допустимым типом текста, как описано выше;falseв противном случае - С тех пор:
- 1.4
- См. также:
selectBestTextFlavor(java.awt.datatransfer.DataFlavor[])
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, также могут выбросить это исключение, чтобы указать, что экземпляр не может быть скопирован. - См. также:
Cloneable
normalizeMimeTypeParameter
@Deprecated
protected String normalizeMimeTypeParameter(String parameterName,
String parameterValue) Вызывается для DataFlavor для каждого параметра MIME-типа, чтобы DataFlavor подклассы могли обработать специальные параметры, такие как параметры text/plain charset, значения которых нечувствительны к регистру. (Значения параметров MIME-типов должны быть чувствительны к регистру.)
Этот метод вызывается для каждой пары имя/значение параметра и должен возвращать нормализованное представление parameterValue.
- Параметры:
-
parameterName- имя параметра -
parameterValue- значение параметра - Возвращает:
- значение параметра
normalizeMimeType
@Deprecated protected String normalizeMimeType(String mimeType)
Вызывается для каждого MIME-типа, чтобы DataFlavor подтипы имели возможность изменить способ нормализации MIME-типов. Одним из возможных применений было бы добавление пар параметров/значений в случаях, когда они отсутствуют в передаваемой строке MIME-типа.
- Параметры:
-
mimeType- MIME-тип - Возвращает:
- MIME-тип
© 1993, 2020, 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.
https://docs.oracle.com/en/java/javase/11/docs/api/java.datatransfer/java/awt/datatransfer/DataFlavor.html