Это быстрый хак: просто присвойте значение прокрутки очень большому числу. Это обеспечит прокрутку страницы донизу. Использование простого javascript:
document.body.scrollTop = 100000;
В классе Foo вы можете поместить аннотации @Getter и @Setter в класс, чтобы избежать дублирования (обратите внимание, что если вы добавляете в этот класс другие закрытые атрибуты, которые не могут быть публичными, вы должны удалить аннотацию @Getter, чтобы выставить атрибут private):
@Getter
@Setter
public class Foo
О методе getWithBytesAndValues я предлагаю вам поместить этот метод в класс Foo, потому что этот метод позволяет получить атрибуты Foo и установить другие атрибуты Foo (бизнес-правило взято из домена Foo - см. Дизайн, управляемый доменом). Вы также можете разделить внутреннюю логику двумя способами:
public class Foo {
...
public void setBytes()
setByte1();
setByte2();
}
private void setByte2() {
if (getByte2String() != null) {
setByte2(new Base64(getByte2String()).decode());
if (getByte2Value() == null) {
setByte2Value(DEFAULT_BYTE_VALUE);
}
}
}
private void setByte1() {
if (getByte1String() != null) {
setByte1(new Base64(getByte1String()).decode());
if (getByte1Value() == null) {
setByte1Value(DEFAULT_BYTE_VALUE);
}
}
}
}
Все простят меня за это. Советы Дж. Б. Низета намного лучше, но я хотел посмотреть, что я смогу сделать.
public static void touch(
final Consumer<byte[]> setByte,
final Consumer<? super String> setByteValue,
final Supplier<String> byteString,
final Supplier<String> byteValue) {
if (byteString != null) {
setByte.accept(Base64.getDecoder().decode(byteString.get()));
}
if (byteValue.get() == null) {
setByteValue.accept(DEFAULT_BYTE_VALUE);
}
}
<ч> touch(
foo::setByte1,
foo::setByte1Value,
foo::getByte1String,
foo::getByte1Value
);
touch(
foo::setByte2,
foo::setByte2Value,
foo::getByte2String,
foo::getByte2Value
);