Non riesco a spiegarmi, in effetti rileggendomi non sono stato chiaro, ci riprovo:

metti che da un altro pianeta ti arrivi un contenitore di oggetti, ad esempio un Vector. Tu non hai idea di cosa c'è dentro, sai solo che il metodo get(index) di Vector ti restituisce un Object.
Questi Object potrebbero essere oggetti String, Integer, Date, Hashtable, etc... ma tu non lo puoi sapere perchè il Vector lo ha riempito un "alieno".
Per semplificare poniamo pure che questo Vector contenga 3 oggetti diversi, un Integer, uno String e un Date.

Adesso mi metto a scandire il mio Vector, la prima chiamata di get(index) mi restituirà un Object che io potrò "castare" ad Integer per ottenere un oggetto "del tipo giusto".
Ora, come si è già detto posso fare:

codice:
if (obj instanceof Integer) {
  Integer oggetto = (Integer)obj
}
elseif (obj instanceof String) {
  String oggetto = (String)obj
}
elseif (obj instanceof Date) {
  Date oggetto = (Date)obj
}
Ma quello che volevo sapere io è: visto che obj.getClass() mi dà direttamente il nome della classe esiste un modo per creare subito una variabile "oggetto" del tipo giusto senza dover fare tutti quegli if?

Una cosa del tipo

Object obj = vector.get(0);
Class classe = obj.getClass();
classe oggetto = (classe)obj // questo è sparato a caso

Arigrazie