I lang tid har samarbejdsbranchen fokuseret på at forbedre enhedsfunktioner – bedre kameraer, klarere lyd og smartere software. Men den virkelige forvandling handler ikke om funktioner.
Ja, men selve princippet om det kan lade sig gøre.
Vi får en masse NullPointerException\'s, vi kan sagtens bruge det definerede array i den klasse det er defineret, men hvis vi i en metode i en anden klasse vil udskrive hvad der i dette array får vi disse exceptions ????
skæringspunkter defineres nederst i klasse test som: public static double[][] skæringsPunkter;
I følgende metode defineres højde og bredde på skæringsPunkter.
public void mindsteT(){ skæringsPunkter = new double[skæringMedPlanT[0].length][9]; k = 0; // Køres igennem for hver referencelinie for(int i = 0;i < skæringMedPlanT[0].length;i++){ // min sættes til første t-værdi for hver linie som reference. min = skæringMedPlanT[0][k]; // Kører antallet af planer igennem for(int j = 0;j < plan.antalPlaner;j++){ if(min >= 0.0){ if(min < skæringMedPlanT[j][i]){ min = min; } else{ if(skæringMedPlanT[j][i] > 0.0){ min = skæringMedPlanT[j][i]; skæring(min,i); plan.normalVærdier(i,j); } } } else{ min = skæringMedPlanT[j][i]; skæring(min,i); plan.normalVærdier(i,j); } }
metoden skæring(min,i) ligger i samme klasse test. normalVærdier(i,j) ligger selvsagt i klassen plan.
skæring kan godt indsætte værdier i skæringsPunkter[][], men det kan normalVærdier IKKE. Vores eneste konklusion på dette problem er at normalVærdier ligger i en anden klasse end hvor skæringsPunkter bliver defineret eller ????
ja, det er jo nok derfor. Du har måske - for at undgå syntaksfejl - fået defineret skæringspunkter et sted i eller omkring normalVærdier, og så har du altså to arrays (det er bare et gæt). Prøv at definere i plan:
public void normalVærdier(int i,int j,double[][] skæringsPunkter) {
Hvis du vil kan du sende hele molesjavsen til min email (klik på mit navn til venstre), og så kigger jeg det igennem (i aften eller i morgen). Løsningen skal nok komme her :)
Uden at vide alt for meget om jeres kode (da der kun er udsnit), vil jeg da påstå, at hvis I erklærer en variable både public og static kan alle nå den uden at kende instancer af klassen, ved at prefixe klassenavnet, ala.
test.skæringsPunkter[3][3]=4.5;
Men hvis i har NullPointerExceptions i jeres kode, har det intet med indholdet af arrayet at gøre, men måske selve allokeringen af arrayet. Alle steder i refererer til skæringspunkter er der potentiel NullPointerException hvis I ikke har oprettet arrayet forinden, og det sker ifølge jeres kode i mindsteT() metoden. Før denne metode er kaldt, vil der ikke være noget array at arbejde på, og alle kald vil give NullPointerException.
Synes godt om
Ny brugerNybegynder
Din løsning...
Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.