У меня есть функция, которая дает мне вызванный метод класса, подобного этому.Класс имеет 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]]
как видите, все значения одинаковы, за исключением того, что в 3-й строке отсутствует одно.кто-нибудь помочь, что я делаю не так?Я просто хочу упомянуть, что размер списка методов равен 5, а indexof дает мне значения (0,1,1,2). Я получаю, возможно, причину, потому что индекс 1 повторяется, но как я могу вставить один в индекс 1 третьей строки, вместо этого он перекрывается ввторой ряд одна позиция.