Gå til innhold

Hvordan opprette objekt av innkommende parameter?


Anbefalte innlegg

Videoannonse
Annonse

Det gir ikke helt mening, det du spør om.

 

La oss si du har et objekt "bil". Ved å passe en parameter, "farge", opprettes en ny bil med angitt farge. Det kan se slik ut:

 

public class Bil{

  private String farge;

  
   public Bil (String farge){
       this.farge = farge;
   }

   //nå kan du lage en ny bil ved å:

  Bil gulBil = new Bil("gul");

Lenke til kommentar
Halla!

 

Hvordan kan jeg opprette et objekt med verdien av parameteren metoden får inn? Altså hvis metoden får inn "Test", skal Test() opprettes.

 

minMetode("Test");

 

public static void minMetode(String tekst) {
  new tekst(); //new Test();
}

5608436[/snapback]

 

Dette kan enkelt gjøres med Class.forName(). Jeg har laget et testcase som demonstrerer konseptet. Hovedklassen er Test.java

 

Werner

 

---

 

Art.java

public interface Art {
 public String getArtsNavn();
}

 

Fisk.java

public class Fisk implements Art {
 protected String artsNavn;
 
 public Fisk() {
   this.artsNavn = "Fisk";
 }
 
 public String getArtsNavn() {
   return artsNavn;
 }
}

 

Fugl.java

public class Fugl implements Art {
 protected String artsNavn;
 
 public Fugl() {
   this.artsNavn = "Fugl";
 }
 
 public String getArtsNavn() {
   return artsNavn;
 }
}

 

Test.java

public class Test {
 public Test() {}

 public static Art minMetode(String tekst) {
  try {
    return (Art)Class.forName(tekst).newInstance();
  } catch (Exception ex) {
    return null;
  }
 }
 
 public static void main(String[] args) {    
   System.out.println(Test.minMetode("Fugl").getArtsNavn());
   System.out.println(Test.minMetode("Fisk").getArtsNavn());
 }  
}

Endret av wernie
Lenke til kommentar

Opprett en konto eller logg inn for å kommentere

Du må være et medlem for å kunne skrive en kommentar

Opprett konto

Det er enkelt å melde seg inn for å starte en ny konto!

Start en konto

Logg inn

Har du allerede en konto? Logg inn her.

Logg inn nå
  • Hvem er aktive   0 medlemmer

    • Ingen innloggede medlemmer aktive
×
×
  • Opprett ny...