– A teraz czas na krótki, ale ciekawy temat: konwersja na typ String.

– W Javie każdy typ danych może być konwertowany na String.

– Brzmi świetnie.

– Nawet bardziej niż świetnie. Prawie każdy typ może zostać domyślnie przekonwertowany na typ String. Łatwo to zauważyć, kiedy dodajemy do siebie dwie zmienne, z których jedna jest typu String, a druga jest innego typu. Zmienna typu „nie String” jest wtedy konwertowana na typ String.

– Oto kilka przykładów:

Komenda Co się dzieje naprawdę
int x = 5;
String tekst = "X=" + x;
int x = 5;
String s = "X=" + Integer.toString(x);
Kot kot = new Kot("Oskar");
String tekst = "Mój kot to " + kot;
Kot kot = new Kot("Oskar");
String tekst = "Mój kot to" + kot.toString();
Object o = null;
String tekst = "Obiekt to " + o;
Object o = null;
String tekst = "Obiekt to " + "null";
String tekst = 5 + '\u0000' + "Log";
int i2 = 5 + (int) '\u0000';
String tekst = Integer.toString(i2) + "Log";
String tekst = "Obiekt to " + (float) 2 / 3;
float f2 = ((float) 2) / 3;
String tekst = "Obiekt to " + Float.toString(f2);

Wniosek: jeśli dodajemy String i „jakikolwiek inny typ”, to ten drugi typ zostanie przekonwertowany na String.

– Zwróć uwagę na czwartą linię tabeli. Wszystkie operacje są przeprowadzane od lewej do prawej. To dlatego dodawanie 5 + '\u0000' jest tym samym, co dodawanie liczb całkowitych.

– A zatem, jeśli napiszę coś takiego: String s = 1+2+3+4+5+"m", to uzyskam s = "15m" ?

– Tak. Najpierw zostaną dodane liczby, a następnie suma zostanie przekonwertowana na String.