คำถามติดแท็ก classcastexception

7
การคัดเลือกอย่างชัดเจนจากคลาสซูเปอร์ไปเป็นคลาสย่อย
public class Animal { public void eat() {} } public class Dog extends Animal { public void eat() {} public void main(String[] args) { Animal animal = new Animal(); Dog dog = (Dog) animal; } } ได้รับมอบหมายDog dog = (Dog) animal;ไม่ได้สร้างรวบรวมข้อผิดพลาด ClassCastExceptionแต่ที่รันไทม์มันสร้าง ทำไมคอมไพเลอร์ตรวจไม่พบข้อผิดพลาดนี้?

4
java: (String []) List.toArray () ให้ ClassCastException
รหัสต่อไปนี้ (ทำงานใน Android) ทำให้ฉันมี ClassCastException ในบรรทัดที่ 3 เสมอ: final String[] v1 = i18nCategory.translation.get(id); final ArrayList<String> v2 = new ArrayList<String>(Arrays.asList(v1)); String[] v3 = (String[])v2.toArray(); นอกจากนี้ยังเกิดขึ้นเมื่อ v2 เป็น Object [0] และเมื่อมีสตริงอยู่ด้วย ความคิดใด ๆ ทำไม?
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.