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

概述

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

最后

以上就是重要酒窝为你收集整理的【学到一招】类的集合的返回。的全部内容,希望文章能够帮你解决【学到一招】类的集合的返回。所遇到的程序开发问题。

如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。

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

评论列表共有 0 条评论

立即
投稿
返回
顶部