@Override
	public boolean equals(Object other) {
		if (other == null) {
			return false;
		}

		Class<? extends Object> otherClass = other.getClass();
		if (!getClass().equals(otherClass)) {
			return false;
		}

		ActionState<?> otherState = (ActionState<?>) other;

		if (!Objects.equals(userData, otherState.userData)) {
			return false;
		}

		return name.equals(otherState.name);
	}
Note: this class overrides the <code>equals(Object)</code> and relies upon the
<code>equals</code> method of the <code>userData</code> object. Thus, if it is important that
equals work for you in the non-standard identity way, then you must override <code>equals</code>
in your user data objects.

@param <T> the type of the action state
Ghidra/Framework/Docking/src/main/java/docking/menu/ActionState.java