10 Fouten om te vermijden in Java Programmering

10 Fouten om te vermijden in Java Programmeren - dummies

Hier zijn 10 snelle herinneringen om gemakkelijke fouten te voorkomen wanneer je Android-apps met Java programmeert code. Het schrijven van uw eigen Java-programma's zal veel eenvoudiger en vloeiender zijn als u deze checklist doorloopt.

Zet hoofdletters waar ze horen

Java is een hoofdlettergevoelige taal, dus je moet echt denken aan je P en Q s - samen met elke andere letter van het alfabet. Hier zijn enkele concepten waarmee u rekening moet houden bij het maken van Java-programma's:

  • De zoekwoorden van Java zijn allemaal volledig in kleine letters. In een Java if-instructie kan het woord if bijvoorbeeld niet If of IF zijn.

  • Wanneer u namen uit de Java Application Programming Interface (API) gebruikt, moet het geval van de namen overeenkomen met wat in de API wordt weergegeven.

  • U moet er ook voor zorgen dat de namen die u zelf verzonnen, op dezelfde manier worden gekapitaliseerd gedurende het hele programma. Als u een variabele myAccount declareert, kunt u er niet naar verwijzen als MyAccount, myaccount of Myaccount. Als u de variabelenaam op twee verschillende manieren kapitaliseert, denkt Java dat u verwijst naar twee totaal verschillende variabelen.

Break out van een switch-statement

Als je niet uit een switch-statement komt, krijg je fall-through. Als de waarde van rol bijvoorbeeld 7 is, worden in de volgende code alle drie de woorden afgedrukt: winnen, doorgaan en verliezen:

 overschakelen (rol) {case 7: systeem. uit. println ( "win"); case 10: Systeem. uit. println ( "verder"); case 12: Systeem. uit. println ("lose");} 

Vergelijk waarden met een dubbel gelijkteken

Wanneer u twee waarden met elkaar vergelijkt, gebruikt u een dubbel gelijkteken. De regel

 if (inputNumber == randomNumber) 

is correct, maar de regel

 als (inputNumber = randomNumber) 

niet correct is.

Luisteraars toevoegen om gebeurtenissen af ​​te handelen

U wilt weten wanneer de gebruiker op een widget klikt, wanneer een animatie eindigt, of wanneer er iets anders gebeurt, dus u maakt luisteraars:

 openbare klasse MainActivity breidt activiteit  uit OnClickListener, AnimationListener  {... public void onClick (View view) {...} public void onAnimationEnd (Animation animation) {...} 

Als u luisteraars maakt, moet u onthouden dat u de listeners moet instellen:

 ImageView-widget = nieuwe ImageView (dit); widget.  setOnClickListener  (this); ... AlphaAnimation animation = new AlphaAnimation (0, 0F, 1. 0F); animatie.  setAnimationListener  (this); ... 

Als u de aanroep van setOnClickListener bent vergeten, gebeurt er niets wanneer u op de widget klikt. Een tweede keer klikken op de widget helpt niet.

Definieer de benodigde constructors

Wanneer u een constructor met parameters definieert, zoals in

 public Temperature (dubbel nummer) 

, maakt Java niet langer een standaardparameterloze constructor voor u aan. Met andere woorden, u kunt niet langer

 Temperatuur roomTemp = new Temperature () aanroepen; 

tenzij u expliciet uw eigen parameterloze temperatuurconstructor definieert.

Niet-statische verwijzingen

Als u probeert de volgende code te compileren, krijgt u een foutmelding:

 klasse WillNotWork {String greeting = "Hello"; public static void main (String args []) {Systeem. uit. println (greeting);}} 

U krijgt een foutmelding omdat main statisch is, maar begroeting is niet statisch.

Blijven binnen een array

Wanneer u een array met tien componenten declareert, hebben de componenten indexen 0 tot en met 9. Met andere woorden, als u

 int guests [] = nieuw int [10]; 

u kunt de componenten van de gastarray raadplegen door gasten [0], gasten [1], enzovoort, helemaal naar gasten [9] te schrijven. Je kunt geen gasten schrijven [10], omdat de gastarray geen component met index 10 heeft.

Anticiperen op null-pointers

Deze voorbeelden zijn niet geneigd om de NullPointerException te gebruiken, maar in real-life Java-programmering kun je zie die uitzondering de hele tijd. Een NullPointerException komt tot stand wanneer u een methode aanroept voor een uitdrukking die geen "legitieme" waarde heeft. Hier is een goedkoop voorbeeld:

 openbare klasse ThrowNullPointerException {public static void main (String [] args) {String myString = null; display (myString);} static void display (String aString) {if (! aString. bevat ("vertrouwelijk")) {Systeem. uit. println (aString);}}} 

De weergavemethode drukt alleen een tekenreeks af als die tekenreeks het woord vertrouwelijk niet bevat. Het probleem is dat de variabele myString (en dus de parameter aString) niet verwijst naar een tekenreeks van welke soort dan ook - zelfs niet naar de lege tekenreeks (").

Wanneer de computer de aanroep naar aString bereikt. bevat, zoekt de computer naar een bevat-methode behorend tot null. Maar nul is niets. De nulwaarde heeft geen methoden. Dus je krijgt een grote NullPointerException en het programma stort tegen je aan.

Als u dit soort calamiteiten wilt vermijden, moet u twee keer nadenken over elke aanroep van een methode in uw code. Als de expressie vóór de punt mogelijk nul kan zijn, voeg dan exception-handling code aan uw programma toe:

 try {if (! AString. Contains ("confidential")) {System. uit. println (aString);}} catch (NullPointerException e) {Systeem. uit. println ("De tekenreeks is null.");} 

Gebruik machtigingen

Sommige apps hebben expliciete rechten nodig. Een app kan bijvoorbeeld via internet met de servers van Twitter praten. Dit werkt niet tenzij je een element toevoegt aan de AndroidManifest van de app. xml file:

Als je vergeet om het element aan je AndroidManifest toe te voegen. xml-bestand kan de app niet communiceren met de servers van Twitter. De app mislukt zonder een nuttig foutbericht weer te geven. Jammer!

De activiteit niet gevonden

Als u een tweede activiteit voor uw app maakt, moet u een nieuw element toevoegen in AndroidManifest van de app.XML-bestand. Een Android-app kan bijvoorbeeld twee activiteiten hebben: MainActivity en MyListActivity.

Eclipse maakt automatisch een

 

Als u dit element niet toevoegt, kan Android de klasse MyListActivity niet vinden, ondanks de MyListAcitivity. java-bestand bevindt zich in de Eclipse-projectmap van de app. Uw app crasht met een ActivityNotFoundException.

En dat maakt het verschil.