SerializerAwareValue

interface SerializerAwareValue<T> : Value<T>

带有显式 序列化器Value.

See also

简单实现

创建一个这样的 SerializerAwareValue

Inheritors

Types

Link copied to clipboard
object Companion

Functions

Link copied to clipboard
fun <T> SerializerAwareValue<T>.deserialize(format: BinaryFormat, bytes: ByteArray)
fun <T> SerializerAwareValue<T>.deserialize(format: StringFormat, string: String)

使用 指定格式格式 反序列化 (更新) 一个 SerializerAwareValue

Link copied to clipboard
open operator override fun getValue(thisRef: Any?, property: KProperty<*>): T
Link copied to clipboard
@JvmName(name = "mapKeysImmutable")
fun <OldK, NewK, V> SerializerAwareValue<Map<OldK, V>>.mapKeys(oldToNew: (OldK) -> NewK, newToOld: (NewK) -> OldK): SerializerAwareValue<Map<NewK, V>>

替换 Map 的 key

@JvmName(name = "mapKeys")
fun <OldK, NewK, V> SerializerAwareValue<MutableMap<OldK, V>>.mapKeys(oldToNew: (OldK) -> NewK, newToOld: (NewK) -> OldK): SerializerAwareValue<MutableMap<NewK, V>>

替换 MutableMap 的 key

Link copied to clipboard
@JvmName(name = "create")
fun <T> Value<T>.serializableValueWith(serializer: KSerializer<T>): SerializableValue<T>
Link copied to clipboard
fun <T> SerializerAwareValue<T>.serialize(format: BinaryFormat): ByteArray
fun <T> SerializerAwareValue<T>.serialize(format: StringFormat): String
Link copied to clipboard
open operator override fun setValue(thisRef: Any?, property: KProperty<*>, value: T)
Link copied to clipboard
@JvmName(name = "withDefaultMapImmutable")
fun <K, V> SerializerAwareValue<Map<K, V>>.withDefault(defaultValueComputer: (K) -> V): SerializerAwareValue<Map<K, V>>
@JvmName(name = "withDefaultMapImmutableNotNull")
fun <K, V : Any> SerializerAwareValue<Map<K, V>>.withDefault(defaultValueComputer: (K) -> V): SerializerAwareValue<PluginDataExtensions.NotNullMap<K, V>>
@JvmName(name = "withDefaultMap")
fun <K, V> SerializerAwareValue<MutableMap<K, V>>.withDefault(defaultValueComputer: (K) -> V): SerializerAwareValue<MutableMap<K, V>>

创建一个代理对象, 当 Map.get 返回 null 时先调用 defaultValueComputer 并放入 Map, 再返回调用的返回值

@JvmName(name = "withDefaultMapNotNull")
fun <K, V : Any> SerializerAwareValue<MutableMap<K, V>>.withDefault(defaultValueComputer: (K) -> V): SerializerAwareValue<PluginDataExtensions.NotNullMutableMap<K, V>>
Link copied to clipboard

创建一个代理对象, 当 Map.get 返回 null 时先放入一个 ArrayList, 再从 this 中取出链接自动保存的 ArrayList.

创建一个代理对象, 当 Map.get 返回 null 时先放入一个 LinkedHashMap, 再从 this 中取出链接自动保存的 LinkedHashMap. (MutableMap.getOrPut 的替代)

创建一个代理对象, 当 Map.get 返回 null 时先放入一个 LinkedHashSet, 再从 this 中取出链接自动保存的 LinkedHashSet.

Properties

Link copied to clipboard
abstract val serializer: KSerializer<Unit>

用于更新 value 的序列化器. 在反序列化时不会创建新的 T 对象实例.

Link copied to clipboard
@get:JvmName(name = "get")
@set:JvmName(name = "set")
abstract var value: T