概述
Collections.unmodifiableList(List)方法的使用。
该方法会返回一个只读的List对象。
写个两个实例进行比较:
一般情况下构造bean类的方法:
public class Student
{
private String name;
private List<String> courses;
public String getName()
{
return name;
}
public void setName(String name)
{
this.name = name;
}
public void setCourse(List<String> courses)
{
this.courses = courses;
}
public List<course> getCourses()
{
returm this.courses;
}
}
public TestMain()
{
public static void main()
{
Student stu = new Student();
List<String> courses = new ArrayList<String>();
courses.add("chinese");
course.add("english");
stu.setCourses(courses);
stu.getCourse().add("math");
}
}
//以上的类在使用时会有一个问题,在客户类只要获得了一个ArrayList的引用后就可以随意的往对象中添加数据。而对象student并不知道。这和面向对象时想违背的。
public class Student
{
private String name;
private List<String> courses;
public String getName()
{
return name;
}
public void setName(String name)
{
this.name = name;
}
public void setCourse(List<String> courses)
{
this.courses = courses;
}
public List<course> getCourses()
{
return Collections.unModifiableList(this.courses);
}
public void addCourse(String course)
{
this.courses.add(course);
}
}
public TestMain()
{
public static void main()
{
Student stu = new Student();
List<String> courses = new ArrayList<String>();
courses.add("chinese");
course.add("english");
stu.setCourses(courses);
//下面的这条语句会抛异常。返回的是一个只读的List
stu.getCourse().add("math");
//student类会提供一个方法来将数据加到课程列表中中去。
stu.addCourse("math");
}
}
在《重构》中有提到夹封装结合(encapsulate Collections)。
最后
以上就是重要酒窝为你收集整理的【学到一招】类的集合的返回。的全部内容,希望文章能够帮你解决【学到一招】类的集合的返回。所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
发表评论 取消回复