Java 变体

10 Sept 2024 | 4 分钟阅读

在 Java 中,Variant 是一个在两个不同包中定义的类。

  • javax.ws.rs.core.Variant
  • org.eclipse.swt.ole.win32.Variant

javax.ws.rs.core.Variant

它是 JDK 内置的。Java Variant 类属于 javax.ws.rs.core.Variant。它扩展了 Object 类。该类用于表示资源表示变体的抽象,其中包含有关资源表示的媒体类型、语言和编码的信息。

Variant 类的构造函数

构造函数描述
Variant(MediaType mediaType, Locale language, String encoding)创建 Variant 的新实例。
Variant(MediaType mediaType, String language, String encoding)
Variant(MediaType m diaType, String language, String country, String encoding)
Variant(MediaType mediaType, String language, String country, String languageVariant, String encoding)

Variant 类的类方法

该类提供了以下方法

方法描述
encodings(String... encodings)它使用一组支持的编码创建一个 Variant.VariantListBuilder。
equals(Object obj)它将 obj 与此变体进行比较,以查看它们是否在所有属性值上都相同。
getEncoding()此方法获取变体的编码。
getLanguage()此方法获取变体的语言。
getLanguageString()此方法获取变体语言的字符串表示形式,如果未设置语言,则为 null。
getMediaType()此方法获取变体的媒体类型。
hashCode()此方法根据变体属性生成哈希码。
languages(Locale... languages)它使用一组支持的语言创建 Variant.VariantListBuilder。
mediaTypes(MediaType... mediaTypes)它使用一组支持的媒体类型创建 Variant.VariantListBuilder。
toString()toString in class Object。

org.eclipse.swt.ole.win32.Variant

这是一个第三方库。Variant 是一个通用的 OLE 机制,用于通过通用接口传递不同类型的数据。它在 OleAutomation 对象中使用,用于获取属性、设置属性或在 OLE 控件或 OLE 文档上调用方法。

Variant 类的字段

字段名描述
NULL一个共享的 Variant 实例,类型为 VT_NULL
sizeof原生 VARIANT 结构的大小(以字节为单位)。

Variant 类的构造函数

构造函数描述
Variant()它创建一个类型为 VT_EMPTY 的空 Variant 对象。
Variant(boolean val)它创建一个表示 Java boolean 的 Variant 对象,类型为 VT_BOOL。
Variant(double val)它创建一个表示 Java double 的 Variant 对象,类型为 VT_R8。
Variant(float val)它创建一个表示 Java float 的 Variant 对象,类型为 VT_R4。
Variant(int val)它创建一个表示 Java int 的 Variant 对象,类型为 VT_I4。
Variant(long val)它创建一个表示 Java long 的 Variant 对象,类型为 VT_I8。
Variant(long ptr, short byRefType)它创建一个 Variant 对象,其中包含对正在传输的数据的引用。
Variant(short val)它创建一个表示 Java short 的 Variant 对象,类型为 VT_I2。
Variant(String string)它创建一个表示 Java String 的 Variant 对象,类型为 VT_BSTR。
Variant(org.eclipse.swt.internal.ole.win32.IDispatch idispatch)它创建一个表示 IDispatch 接口的 Variant 对象,类型为 VT_Dispatch。
Variant(org.eclipse.swt.internal.ole.win32.IUnknown unknown)它创建一个表示 IUnknown 接口的 Variant 对象,类型为 VT_UNKNOWN。
Variant(OleAutomation automation)它创建一个表示 IDispatch 接口的 Variant 对象,类型为 VT_Dispatch。

Variant 类的类方法

方法描述
dispose()释放与此 Variant 相关的资源。
getAutomation()此方法返回此 Variant 表示的 OleAutomation 对象。
getBoolean()此方法返回此 Variant 表示的 Java boolean
getByRef()此方法返回此 Variant 表示的引用数据的指针
getByte()此方法返回此 Variant 表示的 Java byte
getChar()此方法返回此 Variant 表示的 Java char
getDispatch()此方法返回此 Variant 表示的 IDispatch 对象。
getDouble()此方法返回此 Variant 表示的 Java double
getFloat()此方法返回此 Variant 表示的 Java float
getInt()此方法返回此 Variant 表示的 Java int
getLong()此方法返回此 Variant 表示的 Java long
getShort()此方法返回此 Variant 表示的 Java short
getString()此方法返回此 Variant 表示的 Java String
getType()此方法返回变体类型的类型
getUnknown()此方法返回此 Variant 表示的 IUnknown 对象。
setByRef(boolean val)此方法使用新的boolean值更新此变量的引用值
setByRef(float val)此方法使用新的float值更新此变量的引用值
setByRef(long val)此方法使用新的integer值更新此变量的引用值
setByRef(short val)此方法使用新的short值更新此变量的引用值
toString()此方法返回一个字符串,其中包含接收者的简洁、人类可读的描述。
win32_copy(long pVarDest, Variant varSrc)它调用平台特定的功能将变体复制到操作系统内存中。
win32_new(long pVariant)它调用平台特定的功能包装在操作系统内存中分配的变体。