[ Napster78 @ 09.04.2006. 21:49 ] @
Dali zna neko kako se konvertira variabla tipa Object u char?

Npr imam slijedecu klasu i u njoj funkciju funkciju:

public class TreeNode{

public Object getData(){
return this.data;
}

}

i sad zelim da jednoj varijabli tipa char dodijelim varijablu tipa Object npr:


TreeNode tn = new TreeNode();

char ch = tn.getData();

samo ne znam kako da pretvorim u char. Ako neko zna bio bih mu jako zahvalan.
[ zmau @ 10.04.2006. 00:28 ] @
Recimo
ch = tn.getData().toString().charAt(1);

Ili (kulturnija varijanta) preko adapterske klase Character (njušni po njoj u helpu).
[ Stojanovic I @ 10.04.2006. 19:31 ] @
Pozdrav,
objekat ne mozes direktno konvertovati u char, vec prvo ga moras konvertovati u klasu tipa Character, pa tek onda to konvertovati u char metodom charValue().

Konkretno:
TreeNode tn = new TreeNode();
Character ch = (Character)tn.getData();
char c = ch.charValue();

Nadam se da sam bio od pomoci. Pozz

[Ovu poruku je menjao Stojanovic I dana 10.04.2006. u 20:32 GMT+1]
[ Napster78 @ 10.04.2006. 20:38 ] @
Hvala puno na savjetima, puno su mi pomogli.

Puno pozdrava
[ dany @ 10.04.2006. 20:42 ] @
U Javi 5 mozes da uradis sledece (ona ima automatski boxing i unboxing):

TreeNode tn = new TreeNode();
char c = (Character)tn.getData();

Ne kazem da treba da uradis tako (zbog kompatibilnosti sa prethodnim verzijama Jave), ali je dobro znati i tu soluciju i polako se navikavati. Ja, inace, polako ukljucujem mogucnosti ove Jave u svoje programe (ima ih podosta i dosta olaksavaju programiranje).

Pozdrav
[ Napster78 @ 11.04.2006. 00:39 ] @
Dobar savjet! Hvala jos jednom.

Puno pozdrava
[ Stojanovic I @ 11.04.2006. 10:40 ] @
dany,
Character i char nije isto. Character je objekat, a char je prost tip podatka.
Ne mozes napisati.
char c = (Character)tn.getData();

Mislim da ce ti javiti nesto kao Class Cast Exception. Probaj i videces.

[Ovu poruku je menjao Stojanovic I dana 11.04.2006. u 11:41 GMT+1]
[ dany @ 11.04.2006. 22:47 ] @
Opet napominjem da Java 5 ima automatski boxing i unboxing, kao sto sam i napomenuo u prethodnom postu. To znaci da (kao C#, verovatno su i odande "uzeli fazon") moze automatski da konvertuje primitivne tipove u njihove "wrapper" klase i obrnuto. To je dosta korisno resenje, ubrzava i olaksava programiranje, elegantnije je, prirodnije, a mislim (nisam siguran, cini mi se da sam negde procitao) da moze da se generise i efikasniji "byte code". Pre poslog posta sam za primer napisao i izvrsio sledeci program:

Code:
package boxing;

public class UnBoxing {
    public static void main(String args[]) {
        Character cha = new Character('a');
        Object o = new Object();
        
        o = cha;
        Character ch = (Character) o;
        char c = ch.charValue();
        System.out.println(c);
        probaUnbox(o);
    }

    private static void probaUnbox(Object o) {
                char c = (Character)o;
                System.out.println("Sa unboxing-om: "+c);
    }

}


Program, naravno radi:). Ne bih ni poslao prethodni post. Interesantna je metoda "probaUnbox".

Inace, imam jednu interesantnu knjigu o novim stavrima u Javi 5. Spisak je podugacak, a vise detalja se moze naci i na Internetu. Evo neke od njih: genericki tipovi, nabrojivi tipovi, lista argumenta metoda varijabilne duzine, "Annotations", for petlja slicna foreach iz PHP-a, staticko importovanje, formatiran ispis... Ovo nije sve, a promene su zaista znacajne. Dosta toga je vec vidjeno implementirano u drugim programskim jezicima na razlicite nacine.

Pogledajte npr. sledeci pdf fajl:
Code Camp: Java SE 5 The roar of the Tiger
http://developers.sun.com/even...oronto2005/TigerCC_Toronto.pdf

[Ovu poruku je menjao dany dana 11.04.2006. u 23:51 GMT+1]
[ Stojanovic I @ 12.04.2006. 08:33 ] @
Upravu si. Moja greska. Hvala i na linku. Pozz