我知道java(c?)可以裝箱和取消箱類型並在必要時在原始類型之間進行轉換,但是爲什麼它不想同時做到這一點時間。Java不會在同一時間框和轉換原始類型
例如,如果我是這樣做:
ArrayList<Byte> bytes = new ArrayList<>();
bytes.add(8);
javac的會產生恐慌,並告訴我Collection.add(Byte)
是不適用的,但都被我用ArrayList<Integer>
,而不是它不會是一個問題。 如果我會做byte aByte = 8; bytes.add(aByte);
它也可以很好地編譯。
這是爲什麼,這是否有很好的理由?
這是因爲,您希望將字符型int轉換爲字節,int = 4個字節,而字節爲一個字節,因此您要下去,因爲Java不會在您的位置決定,因爲您需要一個EXPLICIT CAST因爲也許你會失去一些數據,如果你想要增加(以字節數爲單位),例如:從int到double,Java將爲你做一個IMPLECIT CAST :) –