我有一个函数可以给我这样的类的调用方法。 该类有4个被调用的方法,分别是Printx(),PrintY(),PrintY()和PrintXZ(),如下所示
[public void printX(int a) {
System.out.println("x is not initialized");
x = a;
}]
[public void printY(int a) {
System.out.println("y is not initialized");
y = a;
}, public void printY(int a) {
System.out.println("y is not initialized");
y = a;
}]
[public void printXZ(int a, int b) {
printX(a);
System.out.println("z is not initialized");
z = a;
}]
[]
[]
我在另一个方法中调用此输出,该方法将在被调用方法存在的地方插入值,另一个函数为
private static int[][] getDirectMethodInnovacationMatrix(List<CtMethod<?>> Methodlist,CtModel model){
int[][] DirectMetodInvocationMatrix=new int[Methodlist.size()][Methodlist.size()];
for (int i = 0; i < Methodlist.size(); i++) {
for (CtMethod<?> invokedMethod : staticallyInvokedMethods(Methodlist.get(i),model)) {
int index=Methodlist.indexOf(invokedMethod);
if(index!=-1)
DirectMetodInvocationMatrix[i][index]=1;
}
} return DirectMetodInvocationMatrix;
}
我想要的输出应该是这样
[[1, 0, 0, 0, 0], [0, 1, 0, 0, 0], [0, 1, 1, 0, 0],[0, 0, 0, 0, 0], [0, 0, 0, 0, 0]]
我在哪里得到这样的输出
[[1, 0, 0, 0, 0], [0, 1, 0, 0, 0], [0, 0, 1, 0, 0], [0, 0, 0, 0, 0], [0, 0, 0, 0, 0]]
您可以看到所有值都是相同的,但第三行中缺少一个。有人帮助我做错了什么吗?只是要提一下,methodlist的大小是5,indexof给我值(0,1,1,2)的输出Im可能是因为索引1在重复,但是我怎么能在第三行的索引1插入一个而不是重叠呢?第二排一个位置。