请大家帮忙, 程序出现ClassCastException
public class Staff{
private String staffID;
private String StaffName;
private double salary;
public Staff(String StaffID,String Name, double Salary){
this.staffID = StaffID;
this.StaffName = Name;
this.salary = Salary;
System.out.println("Class Staff has been created.");
}
public String getStaffID() {
return this.staffID;
}
public String getStaffName() {
return this.StaffName;
}
public double getSalary() {
return this.salary;
}
public String toString() {
return ("Staff ID: " + getStaffID() + ", Name: " + getStaffName() + ", Salary: " + String.valueOf(getSalary()));
}
}
////////////////////////////////////////////////////////////////////////////////////////
import java.util.*;
public class Company{
private Map staffMap = new HashMap();
public void addStaff(Staff oneStaff){
staffMap.put(oneStaff.getStaffID(),oneStaff.toString());
}
public void showStaff(){
Iterator iterator = staffMap.keySet().iterator();
while (iterator.hasNext()){
System.out.println(staffMap.get(iterator.next()));
}
}
public Set nameSet(){
Set set = new HashSet();
Iterator iterator = staffMap.keySet().iterator();
while (iterator.hasNext()){
set.add(((Staff) staffMap.get(iterator.next())).getStaffName());//问题出现在此
}
return set;
}
}
///////////////////////////////////////////////////////////////////////////////////////
public class TestCompany{
public static void main(String args[]){
Company smallCompany = new Company();
Staff StaffOne = new Staff("A007","James",10001.0);
Staff StaffTwo = new Staff("A009","James",999.0);
Staff StaffThree = new Staff("A012","Moon",5000.0);
smallCompany.addStaff(StaffOne);
smallCompany.addStaff(StaffTwo);
smallCompany.addStaff(StaffThree);
smallCompany.showStaff();
System.out.println(smallCompany.nameSet().toString()); //问题出现在此
}
}
////////////////////////////////////////////////////////////////////////////////////////
问题输出:
Exception in thread "main" java.lang.ClassCastException:java.lang.String
at Company.nameSet()(company.java:80)
at TestCompany.main(TestCompany.java:20)
////////////////////////////////////////////////////////////////////////////////////////
请问如何改正错误 ?? 在此谢过半!!
private String staffID;
private String StaffName;
private double salary;
public Staff(String StaffID,String Name, double Salary){
this.staffID = StaffID;
this.StaffName = Name;
this.salary = Salary;
System.out.println("Class Staff has been created.");
}
public String getStaffID() {
return this.staffID;
}
public String getStaffName() {
return this.StaffName;
}
public double getSalary() {
return this.salary;
}
public String toString() {
return ("Staff ID: " + getStaffID() + ", Name: " + getStaffName() + ", Salary: " + String.valueOf(getSalary()));
}
}
////////////////////////////////////////////////////////////////////////////////////////
import java.util.*;
public class Company{
private Map staffMap = new HashMap();
public void addStaff(Staff oneStaff){
staffMap.put(oneStaff.getStaffID(),oneStaff.toString());
}
public void showStaff(){
Iterator iterator = staffMap.keySet().iterator();
while (iterator.hasNext()){
System.out.println(staffMap.get(iterator.next()));
}
}
public Set nameSet(){
Set set = new HashSet();
Iterator iterator = staffMap.keySet().iterator();
while (iterator.hasNext()){
set.add(((Staff) staffMap.get(iterator.next())).getStaffName());//问题出现在此
}
return set;
}
}
///////////////////////////////////////////////////////////////////////////////////////
public class TestCompany{
public static void main(String args[]){
Company smallCompany = new Company();
Staff StaffOne = new Staff("A007","James",10001.0);
Staff StaffTwo = new Staff("A009","James",999.0);
Staff StaffThree = new Staff("A012","Moon",5000.0);
smallCompany.addStaff(StaffOne);
smallCompany.addStaff(StaffTwo);
smallCompany.addStaff(StaffThree);
smallCompany.showStaff();
System.out.println(smallCompany.nameSet().toString()); //问题出现在此
}
}
////////////////////////////////////////////////////////////////////////////////////////
问题输出:
Exception in thread "main" java.lang.ClassCastException:java.lang.String
at Company.nameSet()(company.java:80)
at TestCompany.main(TestCompany.java:20)
////////////////////////////////////////////////////////////////////////////////////////
请问如何改正错误 ?? 在此谢过半!!
...全文
相关推荐
Java选择题50道精选一(含答案).doc
由于animal实际是一个Dog对象,而Dog和Cat之间没有继承关系,因此这段代码会抛出ClassCastException运行时异常。所以正确答案是D. 抛出运行时异常。2.
Hadoop程序中的ClassCastException错误
在上面的示例中,我们定义了一个Mapper类,它将输入文本拆分为单词,并将每个单词作为键,计数为值进行输出。例如,如果您的Mapper输出的键是Text类型,而Reducer期望的键是IntWritable类型,那么在Reducer阶段可能会发生ClassCastException错误。请检查您的程序的键/值类型定义并进行修正。如果您在程序中使用了自定义的数据类型,并且没有正确实现序列化接口,那么在MapReduce过程中进行数据传递时可能会发生ClassCastException错误。
weblogic解决clob添加失败 classcastexception
在IT行业中,WebLogic是一款由Oracle公司开发的企业级应用服务器,广泛用于部署和管理Java EE应用程序。
ClassCastException如何解决.md
示例代码展示了如何捕获并处理ClassCastException。在处理ClassCastException时,最佳实践是尽可能地在编码阶段通过上述方法确保类型的安全性,从而减少运行时错误的发生。
ClassCastException解决办法.md
开发者应依据实际问题场景选择最适宜的方案,以达到最佳的程序设计效果。


Java SE
