Omkring +-*/

Tags:    java

<< < 12 > >>
Jeg har taget lidt kode fra nettet, som jeg modificere lidt på, for at lære det basale i Java...

Jeg sidder med NetBeans på Linux Debian, og har lavet flg:

Fold kodeboks ind/udKode 


Jeg ved at hvis jeg siger value+1024, så virker det, men, jeg skal have det divideret i stedet..

Hvad gør jeg galt?
Kender næsten intet til Java..

Forresten God Lørdag til alle.



12 svar postet i denne tråd vises herunder
1 indlæg har modtaget i alt 1 karma
Sorter efter stemmer Sorter efter dato
Hmm.. jeg aner ikke hvad de API calls du laver gør, men jeg tror godt jeg kan se hvad problemet er.

Fold kodeboks ind/udKode 


Jeg har kigget i documentationen, og Method.invoke() retunere ganske rigtigt et object af typen Object, det gør den, så den har muglighed for at retunere et hvilket som helst from for object, men vis du vil arbejde med det, bliver du nødt til at caste det til noget andet.

I øvrigt kan jeg ikke se meningen med, at du sætter Exception e til at være value, vis det går galt, hellere lav en anden variable af Typen Exception vis du skal bruge det senere, eller bare kald printStacTrace() på e.

Lige en sidste ting, man kan ikke caste fra Object til de primitive typer(int, long osv.)men man kan godt caste til object representationerne af dem(Integer, Long osv.).

Jeg har ikke prøvet at compilere det, men jeg vil tro at det her virker:
Fold kodeboks ind/udKode 


Nu caster jeg først objectet til en Integer og convertere det derefter til en int, med metoden intValue(). Så kan man bruge +-/ og * på det.

Jeg har ingen ide om hvorfor det lykkedes dig at bruge + operatoren på obejctet før.



er der iøvrigt nogen der kan fortælle mig hvordan jeg får det program jeg har lavet til at køre på min webserver??

jeg har forsøgt java -jar filnavn.jar

Men, det virker ikke..

Bemærk at jeg udvikler på min bærbar, og vil afvikle det på min webserver. (Programmet virker iøvrigt på min bærbar..)



Hey Andreas.

Tak for info.

Som jeg sagde, tog jeg noget (en del) af koden fra nettet, og har sådanset bare modificeret det...

Jeg poster lige den næste kode jeg får til at virke, så vi kan debugge fejl :)

brb.



Hejsa igen Andreas.

Den melder fejl på denne linje:
System.out.println(method.getName() + " = " + (value/1024) +" KiloBytes");


Og siger at variable value might not have been initialized...



Ok, burde nok også lige sige, at jeg ikke er sikker på hvad der sker vis objectet skulle vise sig ikke at være en int.

Jeg ved ikke hvordan java håntere det(kaster en Exception og lukker programmet??), men man kunne måske lave noget error tjek med instanceof operatoren og getReturnType(). Du burde nok udvide dit if tjek sådan her:
Fold kodeboks ind/udKode 


Det er nok lidt et hack at jeg bruger newInstance() bare for at kunne bruge instanceof operatoren. Der er helt sikkert en bedre måde at gøre det på.

Bemærk at jeg heller ikke har prøvet at compilere det her.



Hejsa Andreas.

Jeg må erkende at jeg langtfra er så langt inde i Java så jeg ved hvad vi laver nu..

Jeg er først begyndt på Java idag, men, har da forståelse for programmering.. :)



"Den melder fejl på denne linje:
System.out.println(method.getName() + " = " + (value/1024) +" KiloBytes");


Og siger at variable value might not have been initialized..."


Prøv at kopiere alt hvad den skriver, og sæt det ind her.

Jeg må erkende at jeg langtfra er så langt inde i Java så jeg ved hvad vi laver nu..

Jeg er først begyndt på Java idag, men, har da forståelse for programmering..


Det er også nogle rimlig obskure java funktioner du har valgt at starte med. Jeg har i hvert fald ikke set dem før, og jeg har ikke rigtig noget ide om hvad programmet gør, andet end at det kalder nogle funktioner der starter med "get" som den finder et andet sted, på en eller anden måde...

Jeg tror det der går det svært er at du arbejder med nogle typer du ikke rigtigt ved hvad er, så du bliver nødt til at holde tungen lige i munden, for at caste til du rigtige typer på de rigtige tidpunkter, uden at være sikker på man overhovedet kan kaste til de typer, så du bliver nødt til at lave noget error cheking, er igen kræver nogle mærkelige API kald.



Hejsa Andreas.

Utroligt ellers, fordi jeg forstår godt noget af det..

Min færdige kode ser således ud her, og den virker, mangler bare at dividere med 1024 så jeg får KB ud af det, eller eventuelt lave så jeg kan få MB eller GB ud af det :)

Koden (Startede forfra, med de kode eksempler jeg havde):

Fold kodeboks ind/udKode 




Tror at JMX og reflection er et forkert sted at starte med Java. Det er ikke helt simpelt at arbejde med og debugge på.



Hejsa, det er ikke for at være dødbider, men, jeg fik noget til at virke, af de "IKKE begynder egnet" koder...

Poster lige koden der virker:

Fold kodeboks ind/udKode 




<< < 12 > >>
t