2012-03-19 6 views
2

Я автоматически создаю класс java из файла rdf (с schemagen/jena). Класс содержит только константы, то есть высказывания видаКак обходить «слишком большой» код (Java)?

public static final Resource foo = m_model.createResource("http://example.com/foo"); 

сгенерированный класс Java имеет размер 930 Кбайт, поэтому он не компилируется. Любые идеи, как обойти эту проблему? Я мог использовать только часть файла rdf в качестве входных данных, но было бы удобно использовать весь файл.

+1

Не можете ли вы сломать класс вверх и сгенерировать набор классов с логически сгруппированными подмножествами записей? – Nim

+0

Является ли ваш словарь/онтология действительно такой большой? Сколько классов? Сколько свойств? – castagna

+0

Это тезаурус, смоделированный с помощью скинов. Так что это все люди. –

ответ

1

С этим множеством констант вы не собираетесь использовать их все, так что вам действительно не нужно создавать весь этот класс.

Предел, в котором вы работаете, присущ формату файла класса. Если вы собираетесь продолжать генерировать классы, у вас нет выбора, кроме как разбить константы на несколько классов.

Но я рекомендую вам создать текстовый файл, программа может прочитать:

  • Это может быть в формате свойств, так что вы можете загрузить его в объект Properties.

  • Это может быть SQL, чтобы вы могли вставлять его в таблицу базы данных.

  • Это может быть любое количество других форматов ... включая одну из сериализаций RDF.

+0

Вы правы, мне просто нужно пару из них. Но при программировании очень удобно иметь доступ к этим константам через автозаполнение. И когда файл rdf изменяется, новые uri автоматически отражаются в классе java. –

+0

@EmanResu - Да, хорошо ... может быть, вам нужно просто создать константы для «записей» файла RDF, от которых зависит ваш код, и отказаться от удобства автозаполнения. Как я уже сказал, предел, в котором вы работаете, жестко связан с файловым форматом и JVM/компилятором. –

+0

@EmanResu - Мысль ... нет НИКАКОГО ПРЕДЕЛА по количеству/размеру комментариев в сгенерированном файле. Вы не можете автоматически завершить комментарий, но текстовый поиск IDE будет работать. –