2012-03-19 55 views
2

我自动从rdf文件生成java类(使用schemagen/jena)。该类只包含常数,即形式如何绕过“代码太大”的错误(Java)?

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

生成的Java类的大小930 KB的报表,因此它不会编译。任何想法如何规避这个问题?我只能使用rdf文件的一部分作为输入,但使用整个文件会很方便。

+1

您是否可以不打破课程并生成一组具有逻辑分组子项的类? – Nim 2012-03-19 10:33:19

+0

你的词汇/本体真的很大吗?多少班?多少物业? – castagna 2012-03-19 19:44:51

+0

这是一个与skos建模的词库。所以这些都是个人。 – 2012-03-20 00:50:32

回答

1

有了这么多的常量,你就不会全部使用它们,所以你不可能真的需要生成所有的类。

您遇到的限制是类文件格式所固有的。如果你要继续生成类,你别无选择,只能将常量分成多个类。

不过我建议你生成你的程序可以读取文本文件:

  • 这可能是属性的格式,这样就可以将其加载到Properties对象。

  • 它可能是SQL,因此您可以将其批量插入到数据库表中。

  • 它可以是任意数量的其他格式......包括RDF序列化之一。

+0

你说得对,我只需要其中的几个。但编程时通过自动完成访问这些常量非常方便。当rdf文件改变时,新的uri会自动反映到java类中。 – 2012-03-19 11:43:49

+0

@EmanResu - 是啊......也许你应该为你的代码依赖的RDF文件“条目”生成常量,并放弃自动完成的便利。正如我所说的,您遇到的限制是硬连接到文件格式和JVM /编译器工具链。 – 2012-03-19 22:34:22

+0

@EmanResu - 认为......生成文件中的注释的数量/大小没有限制。您无法自动完成评论,但IDE文本搜索将起作用。 – 2012-03-19 22:35:52