Re[9]: The Big OOPs: Anatomy of a Thirty-five-year Mistake
От: · Великобритания  
Дата: 30.09.25 08:05
Оценка:
Здравствуйте, Jack128, Вы писали:

J>·>А как package visibility позволит сделать exhaustiveness checking?

J>
J>public class Expression {
J>    internal Expression() {}
J>}
J>

J>объявить наследника Expression в другой сборке конечно можно. Но так как создать экземпляр этого наследника всё равно нельзя будет создать, то и в pattern matching таких наследников можно не учитывать.
В тех же плюсах такую же хрень можно через private+friend сделать.
В java — через приватный конструктор или интерфейс и inner-классы в качестве наследников. Здесь один недостаток(?), код всех таких классов должен лежать в одном .java-файле.
Правда, причём тут exhaustiveness checking?!.
но это не зря, хотя, может быть, невзначай
гÅрмония мира не знает границ — сейчас мы будем пить чай
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.