Visualizzazione dei risultati da 1 a 5 su 5
  1. #1

    Istanziare oggetto partendo dal nome della classe

    Ciao a tutti,
    premetto di essere un neofita nella programmazione in Java

    Dopo svariate ricerche su Internet riguardo il mio problema, non ho trovato nulla che mi potesse essere utile.
    Questo "problema, come ho già scritto nel titolo, consiste nell'istanziare un oggetto partendo dal suo nome contenuto in una String. Io, di questo oggetto da istanziare conosco un metodo che dovrò lanciare, poiche' implementa un'interfaccia nota.

    Non so se esprimo bene il punto al quale vorrei arrivare
    Spero che qualcuno mi possa aiutare

    Grazie in anticipo

  2. #2
    Allora ci sono diverse cose da considerare, prima di tutto il nome della classe deve essere completo cioè ci vuole anche il package.
    Seconda cosa devi sapere che costruttore questa classe ha.
    codice:
    public static void main(String[] args)
    	{
    		String className = "java.lang.String";
    		try
    		{
    			Class<?> clazz = Class.forName(className);
    			//SE L'OGGETTO NON POSSIDE IL COSTRUTTORE DI DEFAULT (O SE SI VUOLE INVOCARE UN COSTRUTTORE SPECIFICO)
    			Constructor<?> constructor = clazz.getConstructor(String.class);
    			Object obj = constructor.newInstance("HELLO");
    			//ALTRIMENTI 
    			//Object obj = clazz.newInstance();
    			
    			//INVOCO UN METODO CONCAT
    			Method method = clazz.getMethod("concat", String.class);
    			obj = method.invoke(obj, "WORLD");
    			System.out.println(obj);
    		}
    		catch (Exception e)
    		{
    			// TODO Auto-generated catch block
    			e.printStackTrace();
    		}
    
    
    	}

  3. #3
    EDIT: Preceduto :P

  4. #4
    Grazie mille è proprio ciò di cui avevo bisogno.
    Problema risolto!

  5. #5
    Utente di HTML.it
    Registrato dal
    Feb 2007
    Messaggi
    4,157
    ma ma ma un neofita parte da reflection???
    RTFM Read That F*** Manual!!!

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2025 vBulletin Solutions, Inc. All rights reserved.