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.