Слияние содержания MediaWiki вместе

Директивы, такие как объявление package, а также операторы import, вообще не генерируют никакого кода, они только влияют на то, как компилятор будет обрабатывать имена в пределах одной и той же единицы компиляции.

Таким образом, объявление типа

package abc.xyz;

public class MyClassA {

}

создает класс с определенным именем abc.xyz.MyClassA или класс с простым именем MyClassA в пакете abc.xyz; оба означают одно и то же.

Полное имя хранится в файле .class, который является единственной соответствующей информацией для JVM.

Существует соглашение для хранения такого файла как SimpleName.class в каталоге, полученном из имени пакета, то есть abc/xyz/MyClassA.class, присоединенного к javac и используемого стандартными загрузчиками классов для поиска файл, когда запрашивается класс с таким именем. Очевидно, что наличие такого соглашения облегчает жизнь.

В принципе, возможны и другие способы хранения, и некоторые из них известны. Начиная с Java 9, эталонная реализация имеет формат изображения модуля, до этого был «архив данных общего класса», далее был «Pack200», формат архива, который не рекомендуется для удаления с JDK 11. [1120 ]

Обратите внимание, что даже jar-файлы, которые являются расширенными zip-файлами, не совсем то, что вы видите. Zip-файл состоит из линейной последовательности файловых записей, имеющих полное имя, поэтому в вашем случае у вас будет две записи, сообщающие об их именах как abc/xyz/MyClassA.class и abc/xyz/MyClassB.class, тогда как любая структура каталогов, показанная инструментами, фактически получается из этих имена и не подразумевает, что вложенные записи для abc и xyz действительно существуют. Тем не менее, стандартный загрузчик классов также будет использовать эти записи так же, как если бы существовала эта структура каталогов, поэтому нет проблем с тем, чтобы сохранить структуру каталогов в файле zip / jar.

Но начиная с Java 9, могут быть разные версии для одного и того же класса, которые будут выбраны в зависимости от текущей версии Java. Используемая для этого схема именования не является частью соглашения, используемого javac при хранении файлов.

10
задан spelchec 17 November 2008 в 14:44
поделиться

1 ответ

MediaWiki имеет импорт и функции экспорта, которые можно использовать для перемещения содержания. Это действительно объединяет истории существующих страниц (см., что импорт связывается).

Однако это не обрабатывает conlicts двух различных страниц с тем же именем, таким образом, необходимо будет обработать перемещение страниц собой. Насколько я вижу в описании таблицы страниц MediaWiki, Вы смогли находить и переименовывать дублирующиеся страницы непосредственно в SQL, но pywikipedia должен работать также (но необходимо будет удалить перенаправления, которые будут следовать из "корректных" перемещений страницы, иначе они испортят с импортированными страницами от другой Wiki).

8
ответ дан 4 December 2019 в 02:27
поделиться
Другие вопросы по тегам:

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