Java - доступ к строкам в некомпилированных файлах .java во время выполнения - PullRequest
0 голосов
/ 15 июля 2011

У меня есть проблема для вас.

У меня есть куча файлов Java (.java), и все они содержат объявление класса и массив строк. Мне нужно делать вещи с массивом. Какой лучший способ получить к нему доступ?

Я пытался использовать класс JavaCompiler, но, похоже, это не сработало - так что я должен использовать регулярное выражение или что-то еще?

Вот пример того, как выглядят файлы:

package com.mypack.costmgr;

public class Cost_en extends java.util.ListResourceBundle {

 static final Object[][] contents = new String[][] {
    {"ACTIVE", "ACTIVE"},
    {"Joe", "asfag"},
    {"lolcats", "cheezburger"},
    {"HELP", "OH GOD NOT THE BEES"},
    {"asdfffff", "hacks"}
 };

 public Object[][] getContents() {
     return contents;
 }
}

И, вероятно, сотни таких файлов.

Итак, подведем итог: как лучше всего получить доступ к этим данным?

(Очевидно, я не могу просто скомпилировать их с моим проектом.)

Ответы [ 2 ]

1 голос
/ 15 июля 2011

Вы должны скомпилировать .java файлы и сделать их .class файлами. Затем вы помещаете эти файлы .class на ваш classpath. На данный момент вы можете сделать ссылку на содержимое каждого из этих файлов. Поскольку contents равно static, вы можете получить ссылку на него, выполнив следующее:

class MyAwesomeClass  
 {  
    Object[][] myArray = Cost_en.contents;  
 }  

Ресурсные связки

0 голосов
/ 15 июля 2011

Spring Roo имеет интересный синтаксический анализатор языка Java и инфраструктуру управления для своих плагинов. Он используется для извлечения информации из файлов .java, созданных пользователем, как часть кода, поддерживающего AspectJ. Может быть, вы можете создать плагин Roo для обработки того, что вы пытаетесь сделать?

...