谁帮我解释一下java中的“可选操作”到底是什么意思,看晕了都。。。

比如api文档中的下列内容:
Collection类:
add(E e)
确保此 collection 包含指定的元素(可选操作)。
最新回答
半袖桃花

2024-11-30 13:27:27

1、所谓的可选就是指,灵活的运用范型而已。
2、像题目当中,就是定义某个方法时,我用范型来指代要操作的类型,但这个类型不固定,也就是用范型的方式指定,到你使用的时候,你传的哪个类型,我就命名用哪个类型,这样就大大增加了操作的灵活性,这也是范型最大的用处。
3、此时因为你的对象类型是可以因你自己指定的类的变化而变化的,故称为可选操作.
追问
好像不是这个意思,里面有个clear方法,不需要传入参数,也是可选操作。
追答
这样吧,你把你看到的那段文字贴出来,我看下,你的这个概念,有点虚~
追问
那段更虚。。。java编程思想上的。内容如下:

http://book.51cto.com/art/200706/50203.htm
追答
不好意思,你给的这东西太绕口,没感觉出有什么实际用处,在下无能为力了~呵呵
追问
确实没用处,我承认我是咬文嚼字了,就是想明白是什么意思。
追答
那老兄继续等待吧,我是爱莫能助了~
平山渡

2024-11-30 18:48:59

简单说就是抽象类的的某些派生类实现里,或者接口的某个实现类里面,某个方法可能是无意义的,调用该方法会抛出一个异常。例如在collection的某些实现类里,里面的元素可能都是只读的,那么add这个接口是无意义的,调用会抛出UnspportedOperationException异常。
从设计的角度说,如果一个接口的方法设计为optional,表示这个方法不是为所有的实现而设定的,而只是为某一类的实现而设定的。
追问
那一个可选操作的在接口或抽象类中的定义与普通操作的定义有什么不同?
还是它们的定义是相同的,只是在子类中实现时发现不能进行操作就抛出UnspportedOperationException异常(比如当我想add一个只读的Collection时,内部会进行判断,如果是只读的,我就抛出UnspportedOperationException异常)
专业出售绿帽子

2024-11-30 16:30:51

add(E e)
这个方法是向集合里面添加一个元素 那个“可选操作” 不用去理解的这么深吧 这个集合就可以了
如一

2024-11-30 15:02:47

可以是空集合也可以初始化进去子集,它指的可包含也就是可有可无了。