0
이 수트 클래스는 클래스를로드하고 메소드의 수를 인쇄합니다. 로드하려는 클래스의 정확한 이름을 지정하면 클래스가 팬텀이라고 표시됩니다. 또한 클래스가 존재하지 않으면 동일한 메시지를 제공합니다. 내가 뭘 잘못하고 있는지 모르겠다.수트가 항상 말하는 이유 왜로드하고 싶은 클래스가 존재하지 않을 때라도 팬텀 클래스입니다.
public class Loader {
public static void main(String args[]){
List<String> projectPaths;
String classPath;
String highLevelPackageName;
classPath = "C:\\Users\\Alastair\\workspace1\\Interview\\bin";
projectPaths = new ArrayList<String>();
projectPaths.add(classPath);
Options.v().set_allow_phantom_refs(true);
Options.v().set_whole_program(true);
Options.v().set_app(true);
Options.v().set_no_bodies_for_excluded(true);
Options.v().set_process_dir(projectPaths);
String previousClassPath = Scene.v().getSootClassPath();
previousClassPath += ";" + classPath;
Scene.v().setSootClassPath(previousClassPath);
SootClass sootClass = Scene.v().loadClassAndSupport("Diagonal.class");
sootClass.setApplicationClass();
System.out.println(sootClass.getMethodCount());
}
}
로드하려고하는 클래스입니다.
public class Diagonal {
public static void main(String args[]) {
diagonal();
lefttriangle();
righttriangle();
tree();
}
public static void diagonal() {
for (int i = 0; i < 5; i++) {
for (int j = 0; j < 5; j++) {
if (i == j) {
System.out.print("*");
} else {
System.out.print(" ");
}
}
System.out.println("");
}
}
public static void lefttriangle() {
for(int i=0;i<6;i++){
for(int j=0;j<6;j++){
if(j<=i){
System.out.print("*");
}
else{
System.out.print(" ");
}
}
System.out.println("");
}
}
public static void righttriangle(){
for(int i=0;i<7;i++){
for(int j=7;j>0;j--){
if(i<j){
System.out.print(" ");
}else{
System.out.print("*");
}
}
System.out.println("");
}
}
public static void tree(){
for(int i=1;i<=7;i++){
for(int j=7;j>i;j--){
System.out.print(" ");
}
for(int j = 1; j < i*2; j++){
System.out.print("*");
}
System.out.println("");
}
}
}