1
Java 파일에서 테스트 및 테이블 클래스를 생성하는 플러그인을 개발하려고합니다 ... Java 소스를 선택하면 "생성"옵션을 가질 수 있습니다. 클래스 테스트 ", 그 문제는 내가 ICompliationUnit
로 자바 파일을 회복 오전, 그 방법은 xtract
개체의, 그 이유는 무엇입니까; I가 나타내는 클래스의 인스턴스에 IComplilationUnit
을 구문 분석 할, 내가 Class.forName
를 사용하여 시도했지만 작동하지 않는, 즉 코드입니다 :컴파일 유닛에서 객체를 인스턴스화하는 방법
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