8263668: Update java.time to use instanceof pattern variable

Reviewed-by: lancea, ryadav, naoto, rriggs, dfuchs, scolebourne, chegar
This commit is contained in:
Patrick Concannon 2021-04-22 10:17:43 +00:00
parent a93d911954
commit 28af31db34
34 changed files with 129 additions and 176 deletions

View File

@ -730,11 +730,9 @@ public abstract class Clock {
}
@Override
public boolean equals(Object obj) {
if (obj instanceof TickClock) {
TickClock other = (TickClock) obj;
return baseClock.equals(other.baseClock) && tickNanos == other.tickNanos;
}
return false;
return (obj instanceof TickClock other)
&& tickNanos == other.tickNanos
&& baseClock.equals(other.baseClock);
}
@Override
public int hashCode() {

View File

@ -719,8 +719,8 @@ public final class Duration
if (amountToAdd == 0) {
return this;
}
if (unit instanceof ChronoUnit) {
switch ((ChronoUnit) unit) {
if (unit instanceof ChronoUnit chronoUnit) {
switch (chronoUnit) {
case NANOS: return plusNanos(amountToAdd);
case MICROS: return plusSeconds((amountToAdd / (1000_000L * 1000)) * 1000).plusNanos((amountToAdd % (1000_000L * 1000)) * 1000);
case MILLIS: return plusMillis(amountToAdd);
@ -1421,20 +1421,17 @@ public final class Duration
* <p>
* The comparison is based on the total length of the durations.
*
* @param otherDuration the other duration, null returns false
* @param other the other duration, null returns false
* @return true if the other duration is equal to this one
*/
@Override
public boolean equals(Object otherDuration) {
if (this == otherDuration) {
public boolean equals(Object other) {
if (this == other) {
return true;
}
if (otherDuration instanceof Duration) {
Duration other = (Duration) otherDuration;
return this.seconds == other.seconds &&
this.nanos == other.nanos;
}
return false;
return (other instanceof Duration otherDuration)
&& this.seconds == otherDuration.seconds
&& this.nanos == otherDuration.nanos;
}
/**

View File

@ -1292,20 +1292,17 @@ public final class Instant
* <p>
* The comparison is based on the time-line position of the instants.
*
* @param otherInstant the other instant, null returns false
* @param other the other instant, null returns false
* @return true if the other instant is equal to this one
*/
@Override
public boolean equals(Object otherInstant) {
if (this == otherInstant) {
public boolean equals(Object other) {
if (this == other) {
return true;
}
if (otherInstant instanceof Instant) {
Instant other = (Instant) otherInstant;
return this.seconds == other.seconds &&
this.nanos == other.nanos;
}
return false;
return (other instanceof Instant otherInstant)
&& this.seconds == otherInstant.seconds
&& this.nanos == otherInstant.nanos;
}
/**

View File

@ -1940,7 +1940,7 @@ public final class LocalDate
// need to handle case where there is a gap from 11:30 to 00:30
// standard ZDT factory would result in 01:00 rather than 00:30
LocalDateTime ldt = atTime(LocalTime.MIDNIGHT);
if (zone instanceof ZoneOffset == false) {
if (!(zone instanceof ZoneOffset)) {
ZoneRules rules = zone.getRules();
ZoneOffsetTransition trans = rules.getTransition(ldt);
if (trans != null && trans.isGap()) {

View File

@ -1683,7 +1683,7 @@ public final class LocalDateTime
@Override
public long until(Temporal endExclusive, TemporalUnit unit) {
LocalDateTime end = LocalDateTime.from(endExclusive);
if (unit instanceof ChronoUnit) {
if (unit instanceof ChronoUnit chronoUnit) {
if (unit.isTimeBased()) {
long amount = date.daysUntil(end.date);
if (amount == 0) {
@ -1697,7 +1697,7 @@ public final class LocalDateTime
amount++; // safe
timePart -= NANOS_PER_DAY; // safe
}
switch ((ChronoUnit) unit) {
switch (chronoUnit) {
case NANOS:
amount = Math.multiplyExact(amount, NANOS_PER_DAY);
break;
@ -1935,11 +1935,9 @@ public final class LocalDateTime
if (this == obj) {
return true;
}
if (obj instanceof LocalDateTime) {
LocalDateTime other = (LocalDateTime) obj;
return date.equals(other.date) && time.equals(other.time);
}
return false;
return (obj instanceof LocalDateTime other)
&& date.equals(other.date)
&& time.equals(other.time);
}
/**

View File

@ -1066,8 +1066,8 @@ public final class LocalTime
*/
@Override
public LocalTime plus(long amountToAdd, TemporalUnit unit) {
if (unit instanceof ChronoUnit) {
switch ((ChronoUnit) unit) {
if (unit instanceof ChronoUnit chronoUnit) {
switch (chronoUnit) {
case NANOS: return plusNanos(amountToAdd);
case MICROS: return plusNanos((amountToAdd % MICROS_PER_DAY) * 1000);
case MILLIS: return plusNanos((amountToAdd % MILLIS_PER_DAY) * 1000_000);
@ -1407,9 +1407,9 @@ public final class LocalTime
@Override
public long until(Temporal endExclusive, TemporalUnit unit) {
LocalTime end = LocalTime.from(endExclusive);
if (unit instanceof ChronoUnit) {
if (unit instanceof ChronoUnit chronoUnit) {
long nanosUntil = end.toNanoOfDay() - toNanoOfDay(); // no overflow
switch ((ChronoUnit) unit) {
switch (chronoUnit) {
case NANOS: return nanosUntil;
case MICROS: return nanosUntil / 1000;
case MILLIS: return nanosUntil / 1000_000;
@ -1583,12 +1583,11 @@ public final class LocalTime
if (this == obj) {
return true;
}
if (obj instanceof LocalTime) {
LocalTime other = (LocalTime) obj;
return hour == other.hour && minute == other.minute &&
second == other.second && nano == other.nano;
}
return false;
return (obj instanceof LocalTime other)
&& hour == other.hour
&& minute == other.minute
&& second == other.second
&& nano == other.nano;
}
/**

View File

@ -444,8 +444,8 @@ public final class MonthDay
*/
@Override
public long getLong(TemporalField field) {
if (field instanceof ChronoField) {
switch ((ChronoField) field) {
if (field instanceof ChronoField chronoField) {
switch (chronoField) {
// alignedDOW and alignedWOM not supported because they cannot be set in with()
case DAY_OF_MONTH: return day;
case MONTH_OF_YEAR: return month;
@ -720,11 +720,9 @@ public final class MonthDay
if (this == obj) {
return true;
}
if (obj instanceof MonthDay) {
MonthDay other = (MonthDay) obj;
return month == other.month && day == other.day;
}
return false;
return (obj instanceof MonthDay other)
&& month == other.month
&& day == other.day;
}
/**

View File

@ -596,8 +596,8 @@ public final class OffsetDateTime
*/
@Override
public int get(TemporalField field) {
if (field instanceof ChronoField) {
switch ((ChronoField) field) {
if (field instanceof ChronoField chronoField) {
switch (chronoField) {
case INSTANT_SECONDS:
throw new UnsupportedTemporalTypeException("Invalid field 'InstantSeconds' for get() method, use getLong() instead");
case OFFSET_SECONDS:
@ -633,8 +633,8 @@ public final class OffsetDateTime
*/
@Override
public long getLong(TemporalField field) {
if (field instanceof ChronoField) {
switch ((ChronoField) field) {
if (field instanceof ChronoField chronoField) {
switch (chronoField) {
case INSTANT_SECONDS: return toEpochSecond();
case OFFSET_SECONDS: return getOffset().getTotalSeconds();
}
@ -1881,11 +1881,9 @@ public final class OffsetDateTime
if (this == obj) {
return true;
}
if (obj instanceof OffsetDateTime) {
OffsetDateTime other = (OffsetDateTime) obj;
return dateTime.equals(other.dateTime) && offset.equals(other.offset);
}
return false;
return (obj instanceof OffsetDateTime other)
&& dateTime.equals(other.dateTime)
&& offset.equals(other.offset);
}
/**

View File

@ -1178,9 +1178,9 @@ public final class OffsetTime
@Override
public long until(Temporal endExclusive, TemporalUnit unit) {
OffsetTime end = OffsetTime.from(endExclusive);
if (unit instanceof ChronoUnit) {
if (unit instanceof ChronoUnit chronoUnit) {
long nanosUntil = end.toEpochNano() - toEpochNano(); // no overflow
switch ((ChronoUnit) unit) {
switch (chronoUnit) {
case NANOS: return nanosUntil;
case MICROS: return nanosUntil / 1000;
case MILLIS: return nanosUntil / 1000_000;
@ -1360,11 +1360,9 @@ public final class OffsetTime
if (this == obj) {
return true;
}
if (obj instanceof OffsetTime) {
OffsetTime other = (OffsetTime) obj;
return time.equals(other.time) && offset.equals(other.offset);
}
return false;
return (obj instanceof OffsetTime other)
&& time.equals(other.time)
&& offset.equals(other.offset);
}
/**

View File

@ -992,13 +992,10 @@ public final class Period
if (this == obj) {
return true;
}
if (obj instanceof Period) {
Period other = (Period) obj;
return years == other.years &&
months == other.months &&
days == other.days;
}
return false;
return (obj instanceof Period other)
&& years == other.years
&& months == other.months
&& days == other.days;
}
/**

View File

@ -496,8 +496,8 @@ public final class Year
*/
@Override
public long getLong(TemporalField field) {
if (field instanceof ChronoField) {
switch ((ChronoField) field) {
if (field instanceof ChronoField chronoField) {
switch (chronoField) {
case YEAR_OF_ERA: return (year < 1 ? 1 - year : year);
case YEAR: return year;
case ERA: return (year < 1 ? 0 : 1);
@ -708,8 +708,8 @@ public final class Year
*/
@Override
public Year plus(long amountToAdd, TemporalUnit unit) {
if (unit instanceof ChronoUnit) {
switch ((ChronoUnit) unit) {
if (unit instanceof ChronoUnit chronoUnit) {
switch (chronoUnit) {
case YEARS: return plusYears(amountToAdd);
case DECADES: return plusYears(Math.multiplyExact(amountToAdd, 10));
case CENTURIES: return plusYears(Math.multiplyExact(amountToAdd, 100));
@ -914,9 +914,9 @@ public final class Year
@Override
public long until(Temporal endExclusive, TemporalUnit unit) {
Year end = Year.from(endExclusive);
if (unit instanceof ChronoUnit) {
if (unit instanceof ChronoUnit chronoUnit) {
long yearsUntil = ((long) end.year) - year; // no overflow
switch ((ChronoUnit) unit) {
switch (chronoUnit) {
case YEARS: return yearsUntil;
case DECADES: return yearsUntil / 10;
case CENTURIES: return yearsUntil / 100;

View File

@ -485,8 +485,8 @@ public final class YearMonth
*/
@Override
public long getLong(TemporalField field) {
if (field instanceof ChronoField) {
switch ((ChronoField) field) {
if (field instanceof ChronoField chronoField) {
switch (chronoField) {
case MONTH_OF_YEAR: return month;
case PROLEPTIC_MONTH: return getProlepticMonth();
case YEAR_OF_ERA: return (year < 1 ? 1 - year : year);
@ -805,8 +805,8 @@ public final class YearMonth
*/
@Override
public YearMonth plus(long amountToAdd, TemporalUnit unit) {
if (unit instanceof ChronoUnit) {
switch ((ChronoUnit) unit) {
if (unit instanceof ChronoUnit chronoUnit) {
switch (chronoUnit) {
case MONTHS: return plusMonths(amountToAdd);
case YEARS: return plusYears(amountToAdd);
case DECADES: return plusYears(Math.multiplyExact(amountToAdd, 10));
@ -1046,9 +1046,9 @@ public final class YearMonth
@Override
public long until(Temporal endExclusive, TemporalUnit unit) {
YearMonth end = YearMonth.from(endExclusive);
if (unit instanceof ChronoUnit) {
if (unit instanceof ChronoUnit chronoUnit) {
long monthsUntil = end.getProlepticMonth() - getProlepticMonth(); // no overflow
switch ((ChronoUnit) unit) {
switch (chronoUnit) {
case MONTHS: return monthsUntil;
case YEARS: return monthsUntil / 12;
case DECADES: return monthsUntil / 120;
@ -1168,11 +1168,9 @@ public final class YearMonth
if (this == obj) {
return true;
}
if (obj instanceof YearMonth) {
YearMonth other = (YearMonth) obj;
return year == other.year && month == other.month;
}
return false;
return (obj instanceof YearMonth other)
&& year == other.year
&& month == other.month;
}
/**

View File

@ -602,11 +602,8 @@ public abstract class ZoneId implements Serializable {
if (this == obj) {
return true;
}
if (obj instanceof ZoneId) {
ZoneId other = (ZoneId) obj;
return getId().equals(other.getId());
}
return false;
return (obj instanceof ZoneId other)
&& getId().equals(other.getId());
}
/**

View File

@ -813,8 +813,8 @@ public final class ZonedDateTime
*/
@Override // override for Javadoc and performance
public int get(TemporalField field) {
if (field instanceof ChronoField) {
switch ((ChronoField) field) {
if (field instanceof ChronoField chronoField) {
switch (chronoField) {
case INSTANT_SECONDS:
throw new UnsupportedTemporalTypeException("Invalid field 'InstantSeconds' for get() method, use getLong() instead");
case OFFSET_SECONDS:
@ -850,8 +850,8 @@ public final class ZonedDateTime
*/
@Override
public long getLong(TemporalField field) {
if (field instanceof ChronoField) {
switch ((ChronoField) field) {
if (field instanceof ChronoField chronoField) {
switch (chronoField) {
case INSTANT_SECONDS: return toEpochSecond();
case OFFSET_SECONDS: return getOffset().getTotalSeconds();
}

View File

@ -377,8 +377,8 @@ abstract class ChronoLocalDateImpl<D extends ChronoLocalDate>
public long until(Temporal endExclusive, TemporalUnit unit) {
Objects.requireNonNull(endExclusive, "endExclusive");
ChronoLocalDate end = getChronology().date(endExclusive);
if (unit instanceof ChronoUnit) {
switch ((ChronoUnit) unit) {
if (unit instanceof ChronoUnit chronoUnit) {
switch (chronoUnit) {
case DAYS: return daysUntil(end);
case WEEKS: return daysUntil(end) / 7;
case MONTHS: return monthsUntil(end);

View File

@ -373,10 +373,10 @@ final class ChronoLocalDateTimeImpl<D extends ChronoLocalDate>
Objects.requireNonNull(endExclusive, "endExclusive");
@SuppressWarnings("unchecked")
ChronoLocalDateTime<D> end = (ChronoLocalDateTime<D>) getChronology().localDateTime(endExclusive);
if (unit instanceof ChronoUnit) {
if (unit instanceof ChronoUnit chronoUnit) {
if (unit.isTimeBased()) {
long amount = end.getLong(EPOCH_DAY) - date.getLong(EPOCH_DAY);
switch ((ChronoUnit) unit) {
switch (chronoUnit) {
case NANOS: amount = Math.multiplyExact(amount, NANOS_PER_DAY); break;
case MICROS: amount = Math.multiplyExact(amount, MICROS_PER_DAY); break;
case MILLIS: amount = Math.multiplyExact(amount, MILLIS_PER_DAY); break;

View File

@ -199,11 +199,11 @@ final class ChronoPeriodImpl
*/
private ChronoPeriodImpl validateAmount(TemporalAmount amount) {
Objects.requireNonNull(amount, "amount");
if (amount instanceof ChronoPeriodImpl == false) {
if (!(amount instanceof ChronoPeriodImpl)) {
throw new DateTimeException("Unable to obtain ChronoPeriod from TemporalAmount: " + amount.getClass());
}
ChronoPeriodImpl period = (ChronoPeriodImpl) amount;
if (chrono.equals(period.getChronology()) == false) {
if (!(chrono.equals(period.getChronology()))) {
throw new ClassCastException("Chronology mismatch, expected: " + chrono.getId() + ", actual: " + period.getChronology().getId());
}
return period;
@ -320,12 +320,9 @@ final class ChronoPeriodImpl
if (this == obj) {
return true;
}
if (obj instanceof ChronoPeriodImpl) {
ChronoPeriodImpl other = (ChronoPeriodImpl) obj;
return years == other.years && months == other.months &&
days == other.days && chrono.equals(other.chrono);
}
return false;
return (obj instanceof ChronoPeriodImpl other)
&& years == other.years && months == other.months
&& days == other.days && chrono.equals(other.chrono);
}
@Override

View File

@ -195,8 +195,8 @@ public interface ChronoZonedDateTime<D extends ChronoLocalDate>
@Override
default int get(TemporalField field) {
if (field instanceof ChronoField) {
switch ((ChronoField) field) {
if (field instanceof ChronoField chronoField) {
switch (chronoField) {
case INSTANT_SECONDS:
throw new UnsupportedTemporalTypeException("Invalid field 'InstantSeconds' for get() method, use getLong() instead");
case OFFSET_SECONDS:
@ -209,8 +209,8 @@ public interface ChronoZonedDateTime<D extends ChronoLocalDate>
@Override
default long getLong(TemporalField field) {
if (field instanceof ChronoField) {
switch ((ChronoField) field) {
if (field instanceof ChronoField chronoField) {
switch (chronoField) {
case INSTANT_SECONDS: return toEpochSecond();
case OFFSET_SECONDS: return getOffset().getTotalSeconds();
}

View File

@ -498,7 +498,7 @@ public final class HijrahChronology extends AbstractChronology implements Serial
@Override
public int prolepticYear(Era era, int yearOfEra) {
if (era instanceof HijrahEra == false) {
if (!(era instanceof HijrahEra)) {
throw new ClassCastException("Era must be HijrahEra");
}
return yearOfEra;

View File

@ -628,14 +628,11 @@ public final class HijrahDate
if (this == obj) {
return true;
}
if (obj instanceof HijrahDate) {
HijrahDate otherDate = (HijrahDate) obj;
return prolepticYear == otherDate.prolepticYear
return (obj instanceof HijrahDate otherDate)
&& prolepticYear == otherDate.prolepticYear
&& this.monthOfYear == otherDate.monthOfYear
&& this.dayOfMonth == otherDate.dayOfMonth
&& getChronology().equals(otherDate.getChronology());
}
return false;
}
/**

View File

@ -479,7 +479,7 @@ public final class IsoChronology extends AbstractChronology implements Serializa
@Override
public int prolepticYear(Era era, int yearOfEra) {
if (era instanceof IsoEra == false) {
if (!(era instanceof IsoEra)) {
throw new ClassCastException("Era must be IsoEra");
}
return (era == IsoEra.CE ? yearOfEra : 1 - yearOfEra);

View File

@ -202,10 +202,10 @@ public final class JapaneseChronology extends AbstractChronology implements Seri
*/
@Override
public JapaneseDate date(Era era, int yearOfEra, int month, int dayOfMonth) {
if (era instanceof JapaneseEra == false) {
if (!(era instanceof JapaneseEra jera)) {
throw new ClassCastException("Era must be JapaneseEra");
}
return JapaneseDate.of((JapaneseEra) era, yearOfEra, month, dayOfMonth);
return JapaneseDate.of(jera, yearOfEra, month, dayOfMonth);
}
/**

View File

@ -697,11 +697,8 @@ public final class JapaneseDate
if (this == obj) {
return true;
}
if (obj instanceof JapaneseDate) {
JapaneseDate otherDate = (JapaneseDate) obj;
return this.isoDate.equals(otherDate.isoDate);
}
return false;
return (obj instanceof JapaneseDate otherDate)
&& this.isoDate.equals(otherDate.isoDate);
}
/**

View File

@ -293,7 +293,7 @@ public final class MinguoChronology extends AbstractChronology implements Serial
@Override
public int prolepticYear(Era era, int yearOfEra) {
if (era instanceof MinguoEra == false) {
if (!(era instanceof MinguoEra)) {
throw new ClassCastException("Era must be MinguoEra");
}
return (era == MinguoEra.ROC ? yearOfEra : 1 - yearOfEra);

View File

@ -459,11 +459,8 @@ public final class MinguoDate
if (this == obj) {
return true;
}
if (obj instanceof MinguoDate) {
MinguoDate otherDate = (MinguoDate) obj;
return this.isoDate.equals(otherDate.isoDate);
}
return false;
return (obj instanceof MinguoDate otherDate)
&& this.isoDate.equals(otherDate.isoDate);
}
/**

View File

@ -329,7 +329,7 @@ public final class ThaiBuddhistChronology extends AbstractChronology implements
@Override
public int prolepticYear(Era era, int yearOfEra) {
if (era instanceof ThaiBuddhistEra == false) {
if (!(era instanceof ThaiBuddhistEra)) {
throw new ClassCastException("Era must be BuddhistEra");
}
return (era == ThaiBuddhistEra.BE ? yearOfEra : 1 - yearOfEra);

View File

@ -459,11 +459,8 @@ public final class ThaiBuddhistDate
if (this == obj) {
return true;
}
if (obj instanceof ThaiBuddhistDate) {
ThaiBuddhistDate otherDate = (ThaiBuddhistDate) obj;
return this.isoDate.equals(otherDate.isoDate);
}
return false;
return (obj instanceof ThaiBuddhistDate otherDate)
&& this.isoDate.equals(otherDate.isoDate);
}
/**

View File

@ -2208,7 +2208,7 @@ public final class DateTimeFormatter {
Objects.requireNonNull(obj, "obj");
Objects.requireNonNull(toAppendTo, "toAppendTo");
Objects.requireNonNull(pos, "pos");
if (obj instanceof TemporalAccessor == false) {
if (!(obj instanceof TemporalAccessor)) {
throw new IllegalArgumentException("Format target must implement TemporalAccessor");
}
pos.setBeginIndex(0);

View File

@ -165,7 +165,7 @@ public final class DateTimeFormatterBuilder {
*/
private static final TemporalQuery<ZoneId> QUERY_REGION_ONLY = (temporal) -> {
ZoneId zone = temporal.query(TemporalQueries.zoneId());
return (zone != null && zone instanceof ZoneOffset == false ? zone : null);
return zone instanceof ZoneOffset ? null : zone;
};
/**

View File

@ -189,7 +189,7 @@ final class Parsed implements TemporalAccessor {
(time != null && time.isSupported(field))) {
return true;
}
return field != null && (field instanceof ChronoField == false) && field.isSupportedBy(this);
return field != null && (!(field instanceof ChronoField)) && field.isSupportedBy(this);
}
@Override

View File

@ -393,12 +393,11 @@ public final class ValueRange implements Serializable {
if (obj == this) {
return true;
}
if (obj instanceof ValueRange) {
ValueRange other = (ValueRange) obj;
return minSmallest == other.minSmallest && minLargest == other.minLargest &&
maxSmallest == other.maxSmallest && maxLargest == other.maxLargest;
}
return false;
return (obj instanceof ValueRange other)
&& minSmallest == other.minSmallest
&& minLargest == other.minLargest
&& maxSmallest == other.maxSmallest
&& maxLargest == other.maxLargest;
}
/**

View File

@ -421,12 +421,10 @@ public final class ZoneOffsetTransition
if (other == this) {
return true;
}
if (other instanceof ZoneOffsetTransition) {
ZoneOffsetTransition d = (ZoneOffsetTransition) other;
return epochSecond == d.epochSecond &&
offsetBefore.equals(d.offsetBefore) && offsetAfter.equals(d.offsetAfter);
}
return false;
return (other instanceof ZoneOffsetTransition d)
&& epochSecond == d.epochSecond
&& offsetBefore.equals(d.offsetBefore)
&& offsetAfter.equals(d.offsetAfter);
}
/**

View File

@ -519,17 +519,16 @@ public final class ZoneOffsetTransitionRule implements Serializable {
if (otherRule == this) {
return true;
}
if (otherRule instanceof ZoneOffsetTransitionRule) {
ZoneOffsetTransitionRule other = (ZoneOffsetTransitionRule) otherRule;
return month == other.month && dom == other.dom && dow == other.dow &&
timeDefinition == other.timeDefinition &&
time.equals(other.time) &&
timeEndOfDay == other.timeEndOfDay &&
standardOffset.equals(other.standardOffset) &&
offsetBefore.equals(other.offsetBefore) &&
offsetAfter.equals(other.offsetAfter);
}
return false;
return (otherRule instanceof ZoneOffsetTransitionRule other)
&& month == other.month
&& dom == other.dom
&& dow == other.dow
&& timeDefinition == other.timeDefinition
&& timeEndOfDay == other.timeEndOfDay
&& time.equals(other.time)
&& standardOffset.equals(other.standardOffset)
&& offsetBefore.equals(other.offsetBefore)
&& offsetAfter.equals(other.offsetAfter);
}
/**

View File

@ -1027,15 +1027,12 @@ public final class ZoneRules implements Serializable {
if (this == otherRules) {
return true;
}
if (otherRules instanceof ZoneRules) {
ZoneRules other = (ZoneRules) otherRules;
return Arrays.equals(standardTransitions, other.standardTransitions) &&
Arrays.equals(standardOffsets, other.standardOffsets) &&
Arrays.equals(savingsInstantTransitions, other.savingsInstantTransitions) &&
Arrays.equals(wallOffsets, other.wallOffsets) &&
Arrays.equals(lastRules, other.lastRules);
}
return false;
return (otherRules instanceof ZoneRules other)
&& Arrays.equals(standardTransitions, other.standardTransitions)
&& Arrays.equals(standardOffsets, other.standardOffsets)
&& Arrays.equals(savingsInstantTransitions, other.savingsInstantTransitions)
&& Arrays.equals(wallOffsets, other.wallOffsets)
&& Arrays.equals(lastRules, other.lastRules);
}
/**