### Question:
CurrencyAmount implements FxConvertible<CurrencyAmount>, Comparable<CurrencyAmount>, Serializable { @Override public boolean equals(Object obj) { if (obj == this) { return true; } if (obj != null && obj.getClass() == this.getClass()) { CurrencyAmount other = (CurrencyAmount) obj; return currency.equals(other.currency) && JodaBeanUtils.equal(amount, other.amount); } return false; } private  CurrencyAmount(Currency currency, double amount); static CurrencyAmount zero(Currency currency); static CurrencyAmount of(Currency currency, double amount); static CurrencyAmount of(String currencyCode, double amount); @FromString static CurrencyAmount parse(String amountStr); Currency getCurrency(); double getAmount(); CurrencyAmount plus(CurrencyAmount amountToAdd); CurrencyAmount plus(double amountToAdd); CurrencyAmount minus(CurrencyAmount amountToSubtract); CurrencyAmount minus(double amountToSubtract); CurrencyAmount multipliedBy(double valueToMultiplyBy); CurrencyAmount mapAmount(DoubleUnaryOperator mapper); boolean isZero(); boolean isPositive(); boolean isNegative(); CurrencyAmount negated(); CurrencyAmount positive(); CurrencyAmount negative(); Money toMoney(); CurrencyAmount convertedTo(Currency resultCurrency, double fxRate); @Override CurrencyAmount convertedTo(Currency resultCurrency, FxRateProvider rateProvider); @Override int compareTo(CurrencyAmount other); @Override boolean equals(Object obj); @Override int hashCode(); @Override @ToString String toString();  }### Answer:
@Test public void test_equals_bad() { assertThat(CCY_AMOUNT.equals(ANOTHER_TYPE)).isFalse(); assertThat(CCY_AMOUNT.equals(null)).isFalse(); }