Avatar billede mrcorex Nybegynder
08. november 2010 - 15:43 Der er 9 kommentarer

Parse object via metode.

Hej alle.

Jeg er ret ny til java. Har erfaring i andre sprog.

Helt generelt vil jeg gerne kunne parse en reference til et object via en metode i java. Det får jeg af vide fra forskellige websider at jeg ikke kan. Nu vil jeg lige være helt sikker og se om der ikke er andre metoder at parse en reference på. Kender i nogle?

Jeg sidder sådan lidt med kæben lidt nede da jeg godt kan gøre det i andre sprog. Så nu vender jeg mig til eksperterne. :)

(Jeg håber bare det er mig der er newbie). :)

På forhånd tak.
Avatar billede arne_v Ekspert
08. november 2010 - 15:58 #1
Hvad betyder "parse en reference til et object"?
Avatar billede arne_v Ekspert
08. november 2010 - 16:06 #2
Du kan evt. vise et eksempel fra et andet sprog.
Avatar billede mcb2001 Nybegynder
08. november 2010 - 16:28 #3
Er det noget a'la

[code]
Object obj;

public Object ParseRef()
{
obj = new String("Hello World");
return obj;
}
[/code]
Avatar billede mrcorex Nybegynder
08. november 2010 - 16:48 #4
class MyClass {
    public String test = "";
}
class TestClass {
    public void update(MyClass updateClass) {
        updateClass.test = "Hello again world";
    }
}
MyClass myClass = new MyClass();
myClass.test = "Hello World";

TestClass testClass = new TestClass();
testClass.update(myClass);

Hvad kommer der så til at stå i myClass.test nu ?
Avatar billede mcb2001 Nybegynder
08. november 2010 - 16:54 #5
"Hello World", da objectet test er unikt for hver object af type MyClass.

Hvis du vil have en der er gældende for alle MyClass objecter, så skal du erklære den static.

Så er det, det samme statiske objekt alle instanser af klassen MyClass kigger på.

[code]
class MyClass
{
public static String test = "";
}
[/code]
Avatar billede mrcorex Nybegynder
08. november 2010 - 17:02 #6
ok, den forstod jeg faktisk. yay. :)

Problemet er at jeg skal have lavet en eller anden form for baggrunds-downloader ved hjælp af Thread. Jeg snakker Android her, men det burde være det samme.

Jeg har en adapter som returnerer de pågældende views (objects) og det er heri at der er et bitmap der skal opdateres. I min naivitet lavede jeg da "bare" en ImageDownloader-class og en addBitmap() så at den blev lagt i køen. Jeg får ingen runtime fejl, men der er ikke noget der bliver opdareret. Det var heri at jeg opdagede det med reference på objects.

Det vil sige at der er  mere end 1 instance af "MyClass" (MyBitmap) så kan static bruges her?

Jeg håber jeg fik gjort mig forståelig her.
Avatar billede mcb2001 Nybegynder
08. november 2010 - 17:11 #7
Jeg vil mene at du bør gøre sådan her:

MyClass
{
public MyClass(Object lookat)
{
}
}

OtherClass
{
public Object fællesObjekt = ...

MyClass cl1 = MyClass(fællesObjekt);
MyClass cl2 = MyClass(fællesObjekt);
MyClass cl3 = MyClass(fællesObjekt);
}

I ovenstående bruger alle det samme objekt.
Det vil jeg mene er den rigtige måde at gribe det an på.
Avatar billede mcb2001 Nybegynder
08. november 2010 - 17:11 #8
MyClass
{
public Object lookat = null;

public MyClass(Object lookat)
{
this.lookat = lookat;
}
}
Avatar billede mrcorex Nybegynder
08. november 2010 - 18:00 #9
Jeg er ikke sikker på at jeg helt forstår det.

Hele idéen var at lave en lidt generel downloader så den kunne bruges flere steder. Men jeg tror jeg har løst den på en anden måde. Jeg ville gerne lave en generel downloader til hele app men hvis nu jeg laver en subclass hvor denne subclass extender den class som skal have images downloaded, så slipper jeg helt for at parse referencer og kan bruge den direkte. Så har jeg stadig min generelle downloader men i en mere ren løsning.
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester