09. maj 2003 - 11:31Der er
8 kommentarer og 2 løsninger
initialisering af instans variabler
Når man laver en klasse der har nogle instans parameter, hvor er det så smartest at initialisere disse parameter, i selve instantieringen, eller først i setter og getter metoder.
public class DeclarationHeaderTO extends TransferObject { private String declarationType = ""; private String AfregnMoentEnhed = ""; private Timestamp dateOfAcceptance = new Timestamp(0); private int consigneeTRNumber = 0; private short exporterTCNr = 0;
}
Eller
public class DeclarationHeaderTO extends TransferObject { private String declarationType = null; private String AfregnMoentEnhed = null; private Timestamp dateOfAcceptance = null; private int consigneeTRNumber; private short exporterTCNr;
}
Og er det en god ide at bruger wrapper klasserne til de primitive typer så man kan kode med null tjek
Denne side indeholder artikler med forskellige perspektiver på Identity & Access Management i private og offentlige organisationer. Artiklerne behandler aktuelle IAM-emner og leveres af producenter, rådgivere og implementeringspartnere.
wrapper klasserne til de primitive typer er mere en sproglig komplettering end noget der er bruge for. ved beregninger skal en Integer antal = new Integer(25); anvendes helt anderledes (og koster mere tid) end int antal = 25;
Fidusen med wrappers er at de giver en standardklasse at gemme de typespecifikke funktioner i antal.toString(16); // lav til hexadecimal streng selvom antal blot er en int kan du bruge den somom den var en Integer når du ønsker adgang til typens klasser Java vil så vælge den korrekte toString metode at udføre fra Integer klassen.
Instantier altid i erklæringen af dem, eller i constructoren.
Hvis dine variabler er defineret på klasse niveau får de en default værdi af kompileren, men ikke hvis de er defineret på metode niveau, men god kotume er altid selv at give dem default værdien.
Hvad du instantierer dem til er helt op til designet af dit program.
Umiddelbart ville jeg lave alle object instanser til null, derved kan jeg tjekke om de er initialiseret eller ikke. Men jeg mener bare jeg har hørt noget om at det ikke er så pænt, der skal så laves en masse ( if xx == null ) i koden, samt at der let kommer uventede NullpointerExceptions. Men på den anden side, hvis jeg initialisere en String til "", er det svært at tjekke om den er blevet sat af en bruger til "", eller den ikke er blevet sat.
Samtidig ville jeg så wrapper alle primitive type så der også her kan kodes mod null referencer.
Jeg mener bare ikke at der er noget generelt svar der er bedst i alle situationer.
Du må vurdere om det i din applikation er vigtigt at kunne se om noget er initialiseret og om du har tillid til at programmørerne kan kode så de undgår null pointer exceptions.
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.