remi sture Skrevet 15. februar 2006 Del Skrevet 15. februar 2006 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(); } Lenke til kommentar
mikaelandre Skrevet 15. februar 2006 Del Skrevet 15. februar 2006 hvis du har et begrenset antall objekter så er det enkelt å lage en switch som sjekker verdien på stringen og oppretter rett objekt. men det må finnes en mer fancy måte å gjøre dette på.... Lenke til kommentar
alskfjas Skrevet 15. februar 2006 Del Skrevet 15. februar 2006 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
___ Skrevet 15. februar 2006 Del Skrevet 15. februar 2006 (endret) 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 15. februar 2006 av wernie Lenke til kommentar
Anbefalte innlegg
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 kontoLogg inn
Har du allerede en konto? Logg inn her.
Logg inn nå