그래서 왜 이것이 오류를 반환하는지 궁금합니다. "Compn 유형에서 비 정적 메서드 comparen ( args )에 대한 정적 참조를 만들 수 없습니다 ". 나는 분명히 comparen () 메서드를 정적으로 만들 수 없으므로 무엇이 잘못되었는지 확실하지 않습니다.
//8 bit comparison. bit 7 and bit 15 are highest.
public static boolean[] comparator(boolean bit0, boolean bit1, boolean bit2,
boolean bit3, boolean bit4, boolean bit5,
boolean bit6, boolean bit7,
boolean bit8, boolean bit9, boolean bit10,
boolean bit11, boolean bit12, boolean bit13,
boolean bit14, boolean bit15) {
boolean[] comparatorOUT = new boolean[3]; //0 == A>B, 1 == B>A, 2 == A==B
boolean[][] currVal = new boolean[16][3]; // [0] = highest bit.
class Compn {
boolean[] comparen(boolean curr1, boolean curr2, boolean curr3, boolean b1, boolean b2) {
boolean[] storage = new boolean[3];
storage[0] = curr3 && (((!xor(curr1, curr2) && b1) && !(!xor(curr1, curr2) && b2)) || curr1 && !curr2);
storage[1] = curr3 && (((!xor(curr1, curr2) && b2) && !(!xor(curr1, curr2) && b1)) || !curr1 && curr2);
storage[2] = curr3 && (!storage[0] && !storage[1]);
return storage;
}
}
currVal[0] = Compn.comparen(false, false, true, bit7, bit15);
currVal[1] = Compn.comparen(currVal[0][0], currVal[0][1], currVal[0][2], bit6, bit14);
currVal[2] = Compn.comparen(currVal[1][0], currVal[1][1], currVal[1][2], bit5, bit13);
currVal[3] = Compn.comparen(currVal[2][0], currVal[2][1], currVal[2][2], bit4, bit12);
currVal[4] = Compn.comparen(currVal[3][0], currVal[3][1], currVal[3][2], bit3, bit11);
currVal[5] = Compn.comparen(currVal[4][0], currVal[4][1], currVal[4][2], bit2, bit10);
currVal[6] = Compn.comparen(currVal[5][0], currVal[5][1], currVal[5][2], bit1, bit9);
currVal[7] = Compn.comparen(currVal[6][0], currVal[6][1], currVal[6][2], bit0, bit8);
comparatorOUT[0] = currVal[0][0] || currVal[1][0] || currVal[2][0] || currVal[3][0] || currVal[4][0] || currVal[5][0] || currVal[6][0] || currVal[7][0];
comparatorOUT[1] = currVal[0][1] || currVal[1][1] || currVal[2][1] || currVal[3][1] || currVal[4][1] || currVal[5][1] || currVal[6][1] || currVal[7][1];
comparatorOUT[2] = !comparatorOUT[0] && !comparatorOUT[1];
return comparatorOUT;
}
메서드가 정적 일 때만 이렇게 호출 할 수 있습니다.
Compn.comparen
너는 이렇게하라
Compn c = new Compn();
currVal[0] = c.comparen(false, false, true, bit7, bit15);
또는 정적과 비교하여 변경하십시오.
왜 Compn 클래스를 메서드 외부에 두지 않습니까?
이 기사는 인터넷에서 수집됩니다. 재 인쇄 할 때 출처를 알려주십시오.
침해가 발생한 경우 연락 주시기 바랍니다[email protected] 삭제
몇 마디 만하겠습니다