Заменить ноль на пустой декоратор строки

Проблема в том, что bar определяется как атрибут класса, а не переменная экземпляра.

В foo атрибут класса модифицирован в методе init, поэтому все экземпляры затронуты.

В foo2 переменная экземпляра определяется с помощью атрибута (пустого) класса, и каждый экземпляр получает свой собственный bar.

«Правильный» реализация будет:

class foo:
    def __init__(self, x):
        self.bar = [x]

Конечно, атрибуты класса являются полностью законными. Фактически вы можете получить доступ и изменить их, не создавая экземпляр класса следующим образом:

class foo:
    bar = []

foo.bar = [x]
3
задан maximusKon 3 March 2019 в 19:06
поделиться

2 ответа

Нет, нет реализации Text, которая делает это для вас напрямую.

Использование чистых кактусов:

new TextOf(
  new UncheckedScalar<>(
    new Ternary<>(
      someNullString != null,
      someNullString,
      ""
    )
  ).value()
)
0
ответ дан George Aristy 3 March 2019 в 19:06
поделиться

Вы можете использовать Optional::ofNullable из Java 8 следующим образом:

String str = Optional.ofNullable(someNullString)
        .orElse(""); // return empty if someNullString is null or someNullString if not null
0
ответ дан YCF_L 3 March 2019 в 19:06
поделиться
Другие вопросы по тегам:

Похожие вопросы: