Op deze website gebruiken we cookies om content en advertenties te personaliseren, om functies voor social media te bieden en om ons websiteverkeer te analyseren. Ook delen we informatie over uw gebruik van onze site met onze partners voor social media, adverteren en analyse. Deze partners kunnen deze gegevens combineren met andere informatie die u aan ze heeft verstrekt of die ze hebben verzameld op basis van uw gebruik van hun services. Meer informatie.

Akkoord

Vraag & Antwoord

Programmeren

[java] instantie van class aanmaken met onbekende naam

jasperlevink
6 antwoorden
  • Hallo mensen,

    Ik heb het volgende probleem: Ik wil in java een instantie aanmaken met een naam die ik niet vantevoren weet maar die in een bepaalde variabele zit.

    Ik weet toevallig dat het in PHP zo kan:
    ${$naam} = "blabla";

    stel $naam = var1 dan zorgt deze code dat de variabele $var1 de waarde "blabla" krijgt.

    Kan zoiets ook in JAVA?

    Groeten
  • dat kan met Class.forName()
  • Hey Marientje (en anderen)
    Bedankt voor je reactie. Ik denk idd dat ik zoiets zoek.

    Krijg het alleen niet voor elkaar. Bij het compilen krijg ik de volgende fout:
    "cannot find symbol method forName(java.lang.String)" (ik gebruik JCreator LE)

    Mijn code ziet er ongeveer zo uit:

    [code:1:ed9c926822]

    import java.io.*;
    import java.util.*;
    import java.lang.*; //dacht dat dit misschien nodig was

    public class CATHdb {


    // constructor:
    public CATHdb() {
    //blabla
    }


    public CATHitem newItem(String DOMAIN) {
    CATHitem.forName(DOMAIN); //Hier gaat het dus om!!!
    return CATHitem.forName(DOMAIN);
    }
    }
    [/code:1:ed9c926822]

    de functie newItem moet een instantie van het object CATHitem retourneren. Deze instantie moet de naam krijgen die meegegeven wordt aan de string DOMAIN.

    Doe ik iets verkeerd?

    Bedankt!
    Jasper

    edit: ik weet dus wel de naam van de klasse maar nog niet welke naam de instance gaat krijgen die ik aan ga maken..
  • dan is dit niet wat je zoekt. forName() is een statische functie in de klasse Class. Deze moet dus ALTIJD worden aangeroepen met Class.forName(naam_van_een_klasse).
    Wat jij wilt is een variabele aanmaken met de naam die in DOMAIN zit en daaraan een instantie van het object CATHitem toekennen. Klopt het wat ik zeg? Ik moet er even over denken hoe dat moet.
  • Inderdaad.
    Als de String DOMAIN dan bijvoorbeeld de waarde "Klasse1" heeft dan moet er een object aangemaakt worden van de klasse CATHitem met de naam "Klasse1".

    Bij voorbaat dank
  • ik heb nog niets gevonden en denk ook niet dat t kan. Sowieso maakt t de boel niet veiliger. Er kunnen nl variabelen worden overschreven die belangrijk zijn voor de werking van t programma.

Beantwoord deze vraag

Dit is een gearchiveerde pagina. Antwoorden is niet meer mogelijk.