亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定

自己改的課程代碼發現類型轉換出錯

package?com.imooc.collection;

import?java.util.HashSet;
import?java.util.Set;

/**
?*?學生類
?*?
?*?@author?sama
?*
?*/
public?class?Student
{
	private?String?id;
	private?String?name;
	private?Set<Course>?courses;

	public?String?getId()
	{
		return?id;
	}

	public?void?setId(String?id)
	{
		this.id?=?id;
	}

	public?String?getName()
	{
		return?name;
	}

	public?void?setName(String?name)
	{
		this.name?=?name;
	}

	public?Set<Course>?getCourses()
	{
		return?courses;
	}

	public?void?setCourses(Set<Course>?courses)
	{
		this.courses?=?courses;
	}

	public?Student(String?id,?String?name)
	{
		this.id?=?id;
		this.name?=?name;
		this.courses?=?new?HashSet<Course>();
	}

}
package?com.imooc.collection;

import?java.util.ArrayList;
import?java.util.Arrays;
import?java.util.List;
import?java.util.Scanner;
import?java.util.Set;

public?class?SetTest
{
	private?List<Course>?coursesToSelect;

	public?List<Course>?getCoursesToselect()
	{
		return?coursesToSelect;
	}

	public?void?setCoursesToselect(List<Course>?coursesToselect)
	{
		this.coursesToSelect?=?coursesToselect;
	}

	public?SetTest()
	{
		this.coursesToSelect?=?new?ArrayList<Course>();
	}

	public?void?testAdd()
	{//?創建一個課程對象,并通過調用add方法,添加到備選課程List中
		Course?cr1?=?new?Course("1",?"數據結構");
		coursesToSelect.add(cr1);

		Course?cr2?=?new?Course("2",?"C語言");
		coursesToSelect.add(0,?cr2);

		Course[]?courses?=
		{?new?Course("3",?"離散數學"),?new?Course("4",?"匯編語言")?};
		coursesToSelect.addAll(Arrays.asList(courses));

		Course[]?courses2?=
		{?new?Course("5",?"高等數學"),?new?Course("6",?"大學英語")?};
		coursesToSelect.addAll(2,?Arrays.asList(courses2));

	}

	/*
	?*?通過for?each方法訪問集合元素
	?*/
	public?void?teatForEach()
	{
		System.out.println("有如下課程待選(通過foreach方法遍歷):");
		for?(Course?cr?:?coursesToSelect)
		{
			System.out.println("課程:"?+?cr.getId()?+?":"?+?cr.getName());
		}
	}

	@SuppressWarnings("unchecked")
	public?static?void?main(String[]?args)
	{
		SetTest?st?=?new?SetTest();
		st.testAdd();
		st.teatForEach();
		//?創建一個新的學生對象
		Student?student?=?new?Student("1",?"小明");
		System.out.println("歡迎學生:"?+?student.getId()?+?":"?+?student.getName());
		//?創建一個Scanner對象,用來接收從鍵盤輸入的課程ID
		Scanner?input?=?new?Scanner(System.in);
		for?(int?i?=?0;?i?<?3;?i++)
		{
			System.out.println("請輸入課程ID:");
			String?courseId?=?input.next();
			for?(Course?cr?:?st.coursesToSelect)
			{
				if?((cr.getId()).equals(courseId))
				{
					student.setCourses((Set<Course>)?cr);
				}
			}
		}
		st.testForEachSet(student);

	}

	public?void?testForEachSet(Student?student)
	{
		for?(Course?cr?:?student.getCourses())
		{
			System.out.println("選擇了課程:"?+?cr.getId()?+?":"?+?cr.getName());

		}

	}

}

我把課程代碼部分的成員變量改為private,用geterseter方法修改和獲取,但是運行的時候,輸入課程ID就報錯,好像是student.setCourses((Set<Course>) cr);這里類型轉換錯誤。

http://img1.sycdn.imooc.com//5864a7640001086705860308.jpg

正在回答

1 回答

你那個判斷集合里面是否有同名ID的地方,應該是如果有就不執行并報錯,沒有才進行添加

0 回復 有任何疑惑可以回復我~

舉報

0/150
提交
取消
Java入門第三季
  • 參與學習       409767    人
  • 解答問題       4543    個

Java中你必須懂得常用技能,不容錯過的精彩,快來加入吧

進入課程

自己改的課程代碼發現類型轉換出錯

我要回答 關注問題
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號