PDA

View Full Version : [JAVA] Generare automaticamente nomi variabili


Edde
12-01-2007, 12:46
La situazione è questa:



Ho un ciclo, all'interno del quale genero di volta in volta degli oggetti che devo poi manovrare. Il problema è che alla seconda iterazione, il sistema si trova un nome già utilizzato, e quindi genera un'eccezione. Come posso fare ad evitare questo problema? Non c'è un modo per generare in automatico (magari in maniera più o meno casuale) i nomi delle variabili?

Questo è il codice(le righe evidenziate sono quelle che danno il problema):



while(table.next())

{

//Nome della tabella locale

tableName = table.getString(3);

//Errore
OWLNamedClass nc = owlModel.createOWLNamedClass(tableName); ******



//Colonne della tabella

column = dmd.getColumns(null,schema,table.getString(3),"%");



while(column.next())

{

columnName = column.getString(4); //Nome colonna

columnType = column.getString(6); //Tipo colonna



//Creo la proprietà dato associata alla colonna corrente

//Altro errore
OWLDatatypeProperty dProp = owlModel.createOWLDatatypeProperty(columnName); ****

dProp.setDomain(nc); //Dominio: la classe corrente



//Range: il tipo di dato associato

if(columnName.equals("VARCHAR2"))

dProp.setRange(owlModel.getXSDstring());



if(columnName.equals("NUMBER"))

dProp.setRange(owlModel.getXSDinteger());



}//Ho creato tutte le datatypeProperty della classe





}//Ho creato tutte le classi

^TiGeRShArK^
12-01-2007, 21:28
:fagiano:
e mettere un contatore all'interno del while e concatenare il numero contenuto nel contatore al nome della classe? :mbe:

Edde
12-01-2007, 22:33
:fagiano:
e mettere un contatore all'interno del while e concatenare il numero contenuto nel contatore al nome della classe? :mbe:

Non mi risulta si possa fare una cosa simile... ma intendi il nome della variabile? (nc)

Cmq ho risolto: il metodo

owlModel.createOWLNamedClass(tableName);

può essere chiamato anche così, senza una dichiarazione esplicita del nome della variabile. In questo modo l'oggetto creato ha, all'interno del owlModel, il nome "tableName" (che è una stringa diversa ad ogni iterazione) :)

^TiGeRShArK^
12-01-2007, 22:52
Non mi risulta si possa fare una cosa simile... ma intendi il nome della variabile? (nc)

Cmq ho risolto: il metodo

owlModel.createOWLNamedClass(tableName);

può essere chiamato anche così, senza una dichiarazione esplicita del nome della variabile. In questo modo l'oggetto creato ha, all'interno del owlModel, il nome "tableName" (che è una stringa diversa ad ogni iterazione) :)
intendevo passare concatenato al nome della variabile il valore di un cotatore i ke avresti dovuto incrementare all'interno del ciclo..
ma se lo fa già quel metodo...tanto di guadagnato :D

Oceans11
13-01-2007, 10:53
Non c'è un modo per generare in automatico (magari in maniera più o meno casuale) i nomi delle variabili?

Se sei sorano non ti rispondo!!!! :D Scherzo!


Non c'è proprio modo di generare automaticamente nomi di variabili!!!!

ma sbaglio ho hanno inventato gli array anche per questo?????

un solo nome di variabile + un indice = tutte le variabili che vuoi!!!!!!