Newsgroup: it.comp.java
Titolo: ClassNotFound

Sono ancora qua a elemosinare :o)
InterrogazioneOrdiniFornitori istanzaP01 = new
InterrogazioneOrdiniFornitori(connessione, utente);
Funziona perfettamente.
Provo a chiamarla con la riflessione (si chiama così no?) con cui vi ho
assillato poc'anzi (e che finalmente si compila) e mi imbatto con:
Class classeP01 = Class.forName("InterrogazioneOrdiniFornitori");
che mi dà:
java.lang.NoSuchMethodException:
InterrogazioneOrdiniFornitori.<init>(com.ibm.as400.access.AS400JDBCStatement,
java.lang.String)
perché questa differenza?
cosa devo scrivergli per fargli trovare la classe? il path?
oppure cosa devo impostare nel classpath?
Aiuto ...
-- 
questo articolo e` stato inviato via web dal servizio gratuito 
http://www.newsland.it/news
 segnala gli abusi ad 
ab...@newsland.it

Mi rendo conto di aver fatto un po' di confusione tra due problemi che mi
sono emersi nel giro dipoche centinaia di prove :o)
1) Non trovava la classe, ma qui ho capito perché. Se scrivevo la classe
fissa tra apici forName("InterrogazioneOrdiniFornitori") funzionava, se
andava a prendere la stessa dall'apposito array di stringhe che avevo
predisposto non funzionava: dovevo fare trim() per tagliare gli spazi
bianchi in piů del campo stringa. E' stata una sudata ma ce l'ho fatta :o)
2)Continua a dirmi che non trova un costruttore compatibile: non capisco
perché. Ho aggiunto un po' di System.out per capirci qualcosa:
-------------------------------------------------------------
		Object[] parametri= new Object[] {connessione, utente};
 
		Object test=evt.getSource();
		Class paramsType[] = new Class[2]; // Vettore con il TIPO dei parametri 
		paramsType[0] = (parametri[0]).getClass();
		paramsType[1] = (parametri[1]).getClass();
		try {
		if (test==p01) {
			System.out.println("Class classeP01 = ");
			Class classeP01 = Class.forName(classeBottone0].trim());
			System.out.println("Constructor costruttoreP01=>");
			System.out.println("   classeP01="+classeP01.getConstructors());
			System.out.println("   paramsType[0]="+paramsType[0]);
			System.out.println("   paramsType[1]="+paramsType[1]);
			Constructor costruttoreP01=classeP01.getConstructor(paramsType);
			System.out.println("Object IstanzaP01=");
			Object IstanzaP01=costruttoreP01.newInstance(parametri);
------------------------------------------
Si ferma al getConstructor, pur riconoscendo la classe giusta. la classe
InterrogazioneOrdiniFornitori *ha*un costruttore con i due parametri
richiesti eppure il risultato nella shell, compreso di System.out, č:
------------------------------------------
Class classeP01 =
Constructor costruttoreP01=>
   classeP01=[Ljava.lang.reflect.Constructor;@170bea5
   paramsType[0]=class com.ibm.as400.access.AS400JDBCStatement
   paramsType[1]=class java.lang.String
java.lang.NoSuchMethodException:
InterrogazioneOrdiniFornitori.<init>(com.ibm.as400.access.AS400JDBCStatement,
java.lang.String)
-------------------------------------------
Come si puň notare ho sfruttato spudaratemente gli esempi fornitemi anche
nel nome dei vettori :o))))
Grazie anticipate se qualcuno puň aiutarmi.


richiesti
[CUT]
Ho qualche sospetto :-)
Alcune domande random:
Il costruttore in questione è public?
Potresti postare almeno la firma di detto costruttore?
Nei tuoi println di test, invece di stampare quel getConstructors() come 
fai, inserisci un ciclo che li stampi tutti uno per uno.
HTH
-- 
Ciao
	Fabrizio C.