Nekad neesmu tā īsti programmējis Javā, jo vienkārši nav bijusi tāda vajadzība. Tomēr ik pa laikam uzduros kādam piemēram, kas man liek atviegloti uzelpot, ka strādāju .NET-ā ar C# un nevis, izmantojot Java.
Javā ir klase Long. C# analogs būtu Nullable<System.Int64> vai long?. Tātad – vērtība var būt vai nu 64bit skaitlis vai arī null. Dokumentācija.
Tik tālu viss būtu labi. Bet... Javā ir arī primitīvais tips long. C# analogs ir System.Int64 vai long. Vērtība var būt 64bit skaitlis, null vērtību piešķirt nevar.
C# valodā atšķirība ir vai nu System.Nullable<> pieraksts vai arī jautājuma zīmes simbols.
Java valodā atšķirība ir lielais/mazais burts.
Es, protams, saprotu, ka jebkuram Java programmētājam šī ir absolūti pašsaprotama lieta, bet man kā skatītājam no malas tas šķiet absolūti idiotisks lēmums valodas veidošanas procesā. Kas rezultējas vairākās stundās, kas pavadītas, meklējot kļūdu.
Ieskatam neliels raksts par to, kā .NET frontē notiek lēmumu pieņemšana: Building Tuple.
4be1b3d6-a360-4638-a8a6-6b0ed08d522c|2|3.0|015880aa-1e7c-4e05-a104-8c054d966a2e