Junior
როგორ განვახორციელოთ მიმთითებელი ტიპების გარდაქმნა პრიმიტიულ და პირიქით?
sobes.tech AI
პასუხი AI-სგან
Java-შე ავტომატურად ხდება რეფერენცული ტიპების (ობერკების) გარდაქმნა პრიმიტიულებს (უნბოქსინგი) და პირიქით (აუტობოქსინგი). ასევე შესაძლებელია ეს მკაფიოდაც გაკეთდეს.
ავტობოქსინგი: ავტომატური გარდაქმნა პრიმიტიული ტიპიდან შესაბამის რეფერენციულ ტიპში.
int primitiveInt = 10;
// ავტომატურად გარდაიქმნება Integer-ად
Integer wrapperInt = primitiveInt;
უნბოქსინგი: ავტომატური გარდაქმნა რეფერენციული ტიპიდან შესაბამის პრიმიტიულ ტიპში.
Integer wrapperInteger = 20;
// ავტომატურად გარდაიქმნება int-ად
int primitiveInteger = wrapperInteger;
მკაფიო გარდაქმნა:
რეფერენციული ტიპიდან პრიმიტიულის გარდაქმნა: გამოიყენეთ intValue(), doubleValue() და სხვა მეთოდები.
Integer wrapperInt = 30;
int primitiveInt = wrapperInt.intValue(); // მკაფიო გარდაქმნა
Double wrapperDouble = 40.5;
double primitiveDouble = wrapperDouble.doubleValue(); // მკაფიო გარდაქმნა
პრიმიტიული ტიპიდან რეფერენციული ტიპის გარდაქმნა: გამოიყენეთ კლასების კონსტრუქტორები ან სტატიკური მეთოდები valueOf(). სტატიკური მეთოდი valueOf() უკეთესია, რადგან ის კეშავს მნიშვნელობებს.
int primitiveInt = 50;
Integer wrapperInt = new Integer(primitiveInt); // გამოყენება კონსტრუქტორის (ძველი)
double primitiveDouble = 60.7;
Double wrapperDouble = Double.valueOf(primitiveDouble); // გამოყენება valueOf()
გადაყვანის ცხრილი:
| პრიმიტიული ტიპი | რეფერენციული ტიპი |
|---|---|
| boolean | Boolean |
| byte | Byte |
| short | Short |
| char | Character |
| int | Integer |
| long | Long |
| float | Float |
| double | Double |