Då gör du prexis som du gör för att returnera en atomär eller en String.
alltså om du vill returnera klassen Data som tar en int i sin konstruktor så gör du såhär;
public Data initData(String textual_int)
{
Data result;
if("ett".equals(textual_int))
result = new Data(1);
if("två".equals(textual_int))
result = new Data(2);
if("tre".equals(textual_int))
result = new Data(3);
return result;
}
I java så är det alltid så att det är "pass by value" in i metoder och "return by reference".
Då gör du prexis som du gör för att returnera en atomär eller en String.
Vad menas med atomär?
Lime skrev:
alltså om du vill returnera klassen Data som tar en int i sin konstruktor så gör du såhär;
public Data initData(String textual_int)
{
Data result;
if("ett".equals(textual_int))
result = new Data(1);
if("två".equals(textual_int))
result = new Data(2);
if("tre".equals(textual_int))
result = new Data(3);
return result;
}
Ahhh!!! Jag glömde new.
Nu funkar det! Lysande... tackar!
Lime skrev:
I java så är det alltid så att det är "pass by value" in i metoder och "return by reference".
När man pratar objektorienterade språk så pratar man ofta om atomärer eller primitiva typer, d.v.s. de inbyggda typerna som man inte använder new för att instansiera. Dessa är i java 8 till antalet:
- boolean
- byte
- char
- short
- int
- long
- float
- double
Alla klasser som finns i Java kan på ett eller annat sätt brytas ner i dessa primitiva typer. T.ex. så är klassen String inte en primitiv utan en klass som kapslar in hanteringen av char-arrayer så att man slipper tänka på hur man gör strängar.
Ta och läs en grundläggande Java-bok eller en tutorial på java.sun.com eller liknande. Det förklarar det mest basala.