AutoboxingStateValueProperty
Class
Common
@Target(AnnotationTarget.PROPERTY_SETTER, AnnotationTarget.PROPERTY_GETTER)
public annotation class AutoboxingStateValueProperty(
/**
* An alternative, non-boxing property that can be used instead of the annotated property. The
* property indicated in this property should contain the exact same value as the annotated
* property and should be observed in Compose in the same way, meaning that the designated
* replacement property can serve as a drop-in replacement to the annotated property.
*
* This property name will be used for suggesting quick fixes. It must match the suggested
* property name exactly, including its case.
*/
@Suppress("unused") // Used by lint
val preferredPropertyName: String
)
This annotation designates that a property on a State
class will autobox when it is read from
or assigned to. This is helpful for state APIs like IntState
, which define an alternative value
property that does not box while maintaining compatibility with the generic State<T>
API.
Whenever a property that is annotated with AutoboxingStateValueProperty
is accessed in code, it
will be flagged with a warning and will suggest using an alternative, non-boxing property
instead.