+1 امتیاز
قبل در برنامه نویسی توسط (922 امتیاز)
خطای ClassCastException در جاوا در چه مواقعی رخ می دهد؟

1 پاسخ

+2 امتیاز
قبل توسط (45 امتیاز)
ویرایش شده قبل توسط

این خطا زمانی رخ می دهد که شما قصد تبدیل دو کلاس با ساختار نامشابه را انجام دهید

مثلا یک عدد Long  را به Integer  تبدیل کنید

یا یک کلاس Cat را در کلاس Human بریزید .

class Test_A {

  Test_B b = new Test_B();

  public void login()
  {
     driver.findElement(By.name("userName")).sendKeys(userName);
     driver.findElement(By.name("password")).sendKeys(password);
     driver.findElement(By.name("login")).click();

     b.verifyLoginValidUser();
  }   

  public void logout()
  {
     driver.findElement(By.linkText("SIGN-OFF")).click();
  }
}

class Test_B {

Test_A a = new Test_A()

 public void verifyLoginValidUser()
 {
    if(isElementPresent(By.linkText("SIGN-OFF"))) 
    {
    }
    a.logout();
 }  }

مثال بالا یه نمونه از خطا هست که این خطا رو میده

Exception in thread "pool-1-thread-1" java.lang.ClassCastException: 
java.lang.StackOverflowError cannot be cast to java.lang.Exception
    at supportlibraries.DriverScript.driveTestExecution(DriverScript.java:106)
    at allocator.ParallelRunner.invokeTestScript(ParallelRunner.java:60)
    at allocator.ParallelRunner.run(ParallelRunner.java:41)
    at java.util.concurrent.ThreadPoolExecutor$Worker.runTask(Unknown Source)
    at java.util.concurrent.ThreadPoolExecutor$Worker.run(Unknown Source)
    at java.lang.Thread.run(Unknown Source)


البته اینجا  StackOverflowError  پیش میاد که نمی شه به کلاس lang تبدیلش کرد و خطا میده.

این هم یه نمونه دیگه کلاس a را نمی توان به کلاس b تبدیل کرد:

class A {

int a=10;
public void sayhello() {
System.out.println("class A");
}
}

class B extends A {
int a=20;

public void sayhello() {
System.out.println("class B");
}
}

public class HelloWorld {
    public static void main(String[] args) throws IOException {

B b = (B) new A();
     System.out.println(b.a);
    }
}
قبل توسط (922 امتیاز)
+1
می تونید با مثال و تکه کد توضیح بدهید.
قبل توسط (1.1هزار امتیاز)
+1
لطفا برای تکمیل جواب، جواب خود را ویرایش کنید.

سوالات مشابه

+1 امتیاز
3 پاسخ 762 بازدید
0 امتیاز
0 پاسخ 444 بازدید
+1 امتیاز
1 پاسخ 349 بازدید
+2 امتیاز
2 پاسخ 542 بازدید
+1 امتیاز
1 پاسخ 399 بازدید
+1 امتیاز
1 پاسخ 524 بازدید
+1 امتیاز
1 پاسخ 749 بازدید
0 امتیاز
0 پاسخ 374 بازدید
سوال شده 7 سال قبل در برنامه نویسی توسط java (0 امتیاز)
0 امتیاز
1 پاسخ 684 بازدید
...