我是靠谱客的博主 重要酒窝,这篇文章主要介绍【学到一招】类的集合的返回。,现在分享给大家,希望可以做个参考。

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)。

最后

以上就是重要酒窝最近收集整理的关于【学到一招】类的集合的返回。的全部内容,更多相关【学到一招】类内容请搜索靠谱客的其他文章。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(115)

评论列表共有 0 条评论

立即
投稿
返回
顶部