Ответ 1
Нет. Java не поддерживает частичные классы. Вы найдете более подробное обсуждение этого вопроса и этого вопроса.
У С# есть эта замечательная концепция, в которой класс может быть распространен в нескольких файлах.cs. Это отлично работает там, где вам нужен один объект (переменные-члены, которым нужен весь код), но там тонна кода. Затем вы можете распространить этот код по функциональности в исходных файлах.
Есть ли способ сделать это на Java?
Обновление: сначала я сказал себе, что это должен быть один большой класс (он выполняет компоновку содержимого файла DOCX). Но потом, после публикации этого, я подумал об этом больше, и меня действительно беспокоило, что именно эта большая (5, 000+ строк).
Поэтому я подумал о некоторых альтернативах и придумал хороший способ разбить его на один основной класс и около 20 вспомогательных классов. Он работает очень хорошо, таким образом, действительно отделяя функциональность в каждой части.
Итак... хотя я считаю, что частичные классы иногда являются полезной конструкцией, в этом случае отсутствие частичных классов заставило меня придумать лучший дизайн. (И это не имеет никакого отношения к первому вопросу, но я думал, что это стоит того, чтобы поделиться).
Нет. Java не поддерживает частичные классы. Вы найдете более подробное обсуждение этого вопроса и этого вопроса.
Нет, Java не поддерживает частичные классы.
Если это просто праздное любопытство, проверьте Scala. Он компилируется в.class файлы, как Java, и имеет полный interop. Он поддерживает грубый эквивалент частичных классов как "черты".
Пример использования признаков:
trait FunctionalityA {
// some stuff implemented here
}
trait FunctionalityB {
// more stuff implemented...
}
// etc...
class MyBigClass extends FunctionalityA with FunctionalityB with FunctionalityC
Невозможно иметь частичные определения классов, распространенные между файлами. Каждый класс должен быть определен в собственном файле тезки.
Напротив, вы можете определить дополнительные классы в этом файле и в определении класса (верхнего уровня).
Нет, это одна из замечательных особенностей Java. Класс должен быть идентичен имени ее файла. :-)