JensGustavsson.se
Förstasidan | Arkiv | Artiklar | CodeCompanion | Länkar | Vem är Jens Gustavsson?
Förstasidan : april 2005

Ett lurigt Javaprogram

Levon Saldamli har skickat mig ett lurigt Javaprogram som innehåller den nya for-loopen som jag höjt till skyarna här. Tanken med följande program är att det ska lägga till tre punkter till varje parameter som skickats till det:

  public static void main(String[] args) {

    // Lägg till tre punkter i slutet av varje sträng
    for(String a: args) {  
      a += "...";
    }

    // Skriv ut strängarna
    for(String a: args) {
      System.out.println(a);
    }
    
  }

Men utskriften visar att strängarna inte förändrats! Varför? Jo, i Java är strängar oföränderliga, det går aldrig att ändra innehållet i något strängobjekt. Operatorn += skapar ett helt ny strängobjekt som a sedan refererar till, istället för att ändra på det objekt som finns i arrayen. Därför blir det fel.

Kodningsstandard för Java

För några år sedan utvecklade jag ett program som kontrollerar om Java-källkod följer några uppställda kodningsstandardregler. Nu är programmet, som heter CodeCompanion, lite gammalt och jag underhåller det inte längre, men jag tänkte att det kanske kan vara till nytta åt någon, så jag gör det tillgängligt för nedladdning här.

mars 2005 «  » maj 2005