Interface ItemOrder<T extends ItemOrder<T>>
-
- Type Parameters:
T
- Item order type
- All Known Subinterfaces:
ItemOrder.Ordered
,ItemOrder.Unordered
@Beta public interface ItemOrder<T extends ItemOrder<T>>
Marker interface for specifying ordering of items. There are two orderings,ItemOrder.Ordered
andItemOrder.Unordered
, and they are mutually exclusive. Item ordering is considered semantically important, such as it impactsObject.equals(Object)
contract. This can be thought of as the missing interface distinction betweenCollection
,List
andSet
.
-
-
Nested Class Summary
Nested Classes Modifier and Type Interface Description static interface
ItemOrder.Ordered
Items are ordered and their order is significant.static interface
ItemOrder.Unordered
Items are unordered and their order is insignificant.
-
Method Summary
All Methods Instance Methods Abstract Methods Modifier and Type Method Description boolean
equals(@Nullable Object obj)
ItemOrder
has impact onequals(Object)
.int
hashCode()
ItemOrder
has impact onhashCode()
.@NonNull Class<T>
itemOrder()
Return the item order class of this object.
-
-
-
Method Detail
-
itemOrder
@NonNull Class<T> itemOrder()
Return the item order class of this object. The class' equality contracts apply to this object's equality contract.- Returns:
- Item order class.
-
hashCode
int hashCode()
ItemOrder
has impact onhashCode()
.
-
equals
boolean equals(@Nullable Object obj)
ItemOrder
has impact onequals(Object)
.
-
-