如果答案是否定的, 就必须对该对象进行保护性拷贝, 并且让拷贝之后的对象而不是原始对象进入到数据结构中.在内部组件被返回给客户端之前, 对它们进行保护性拷贝也是同样的道理.如果参数的类型是可以被不被信任的人子类化的....在重视性能的情况下, 使用可变参数机制要特别小心.在定义参数数目不定的方法时, 可变参数是一种很方便的方式, 但是它们不应该被过度滥用.第54条 返回零长度的数组或集合, 而不是null返回类型为数组或集合的方法..., 应该返回一个零长度的数组或者集合, 没理由返回null. -> 不好用, 容易出错, 没有性能优势.开销考虑:在这个级别上担心性能问题是不明智的, 除非分析表明这个方法是造成性能问题的真正源头.对于不返回任何元素的调用...(例如: Collections.emtpySet).第55条 明智地返回optionals在Java 8之前, 当一个方法无法返回值的时候有两种选择: 返回null或者抛出异常.Java 8推出了一个新的解决方案...这个约定应该说明这个方法做了什么, 而不是如何完成这项工作的.方法的文档注释还应该列举出:所有前提条件.