ログインフォームを自分のcsrフォームにリンクして、スタッフを正しいフォームにリダイレクトするコードに問題が発生しました。私は、StaffクラスとCustomerServiceRepクラスを持ち、CustomerServiceRepクラスにはStaffクラスがあります。コードは、私が「互換性のない型を:スタッフがCustomerServiceRepに変換することができません」というエラーを取得しています互換性のないタイプ:スタッフをCustomerServiceRepに変換できません
//staff object to store staff logged in successfully
Staff emp = null;
/*Use core to store staff logged in should return an staff
object if username/password found OR null if credentials invalid*/
emp = core.login(username, password);
if (emp==null){//staff not found
//display feedback
pop.showMessageDialog(
null,
"Login Credentials Invalid",
"Errors",
JOptionPane.ERROR_MESSAGE
);
}else{//staff found, redirect to dashboard
pop.showMessageDialog(
null,
"Login Successful",
"Feedback",
JOptionPane.INFORMATION_MESSAGE
);
//redirect user to appropriate dashboard
if(emp.getRole().equals("csr")){
//go to csr dash
//hide the login form(current form)
this.setVisible(false);
/**create new instance of AdminDashboard form and
* pass the instance of Staff (emp) who
* has logged in successfully
*/
Z_Frm_CSR CSRDash = new Z_Frm_CSR(emp);
//Show CSR Dashboard
CSRDash.setVisible(true);
}
あるEMP
Z_Frm_CSR CSRDash = new Z_Frm_CSR(emp);
のために私はこのサイトに新しいと私はいけないコーディングにかなり新しいです私が私のエラーに関する十分な情報を提供したかどうかを知っていれば、それが与えられていないならば、もっと情報を求めてください
も例外エラーを取得イムない:スレッドの例外 "AWT-EventQueueの-0" とjava.lang.ClassCastException:athenas.garden.system.Staffはathenas.garden.systemにキャストすることはできません.CustomerServiceRep – Ryan
この場合、オブジェクトは実際にはStaffオブジェクト(コードからはわかりません)であり、CustomerServiceRepオブジェクトではありません。クラスに本当にCustomerServiceRepオブジェクトが必要な場合は、そのオブジェクト型である必要があります。それがスタッフオブジェクトでもよい場合は、コンストラクタを変更して、スタッフオブジェクトを取得したり、スタッフオブジェクトを取得するコンストラクタを追加したりすることができます。 Javaは自動的にタイプを変換しません。 – Xyrus
私はCustomerServiceRep emp = nullをstaffに変更しました。 – Ryan