@Override
	public boolean equals(Object obj) {
		if (obj == this) {
			return true;
		}
		if (obj instanceof Pair<?, ?>) {
			Pair<?, ?> other = (Pair<?, ?>) obj;
			return ObjectUtils.equals(first, other.first)
					&& ObjectUtils.equals(second, other.second);
		}
		return false;
	}