Я пытаюсь разработать плагин, который из java-файла генерирует тестовые классы и классы таблиц ... когда я выбираю источник Java, я буду иметь возможность «генерировать» class test ", проблема, что я восстанавливаю файл Java как ICompliationUnit
, тогда у меня есть метод, который xtract
методов объекта, вот почему; Я хочу, чтобы разобрать IComplilationUnit
к экземпляру класса, который представляет, я пытался использовать Class.forName
, но он не работает, вот код:Как я могу создать экземпляр объекта из compilationunit
private void write(String dir, ICompilationUnit cu) throws JavaModelException
{
try
{
cu.getCorrespondingResource().getName();
System.out.println("0000000000000" + cu.getJavaProject().getProject().toString());
}
catch (JavaModelException e1)
{
// TODO Auto-generated catch block
e1.printStackTrace();
}
String test = cu.getCorrespondingResource().getName();
IPackageDeclaration[] test1 = cu.getPackageDeclarations();
// Need
String[] name = test.split("\\.");
String contentFile = dir + "\\" + name[0] + "content.txt";
GenerateFitnessTable inst = new GenerateFitnessTable();
try
{
String pack = test1[0].toString().substring(7, test1[0].toString().indexOf("[") - 1) + "." + name[0];
@SuppressWarnings("rawtypes")
Class classe = Class.forName(cu.getJavaProject().getProject().toString()
.substring(cu.getJavaProject().getProject().toString().indexOf("/"), cu.getJavaProject().getProject().toString().length())
+ pack);
try
{
classe.newInstance();
}
catch (InstantiationException e)
{
// TODO Auto-generated catch block
e.printStackTrace();
}
catch (IllegalAccessException e)
{
// TODO Auto-generated catch block
e.printStackTrace();
}
}
catch (ClassNotFoundException e1)
{
System.out.print("****************************la classe n'existe pas");
}
try
{
inst.generateContent(cu, contentFile);
}
catch (IOException e)
{
// TODO Auto-generated catch block
e.printStackTrace();
}
}
Я уверен, что это неправильный путь, но я не знаю, есть ли * * правильный путь. (Вы можете проанализировать исходный код с помощью JDT DOM API) – immibis