知识大全 未支持的操作
Posted 知
篇首语:实践是知识的母亲,知识是生活的明灯。本文由小常识网(cha138.com)小编为大家整理,主要介绍了知识大全 未支持的操作相关的知识,希望对你有一定的参考价值。
利用static(静态)数组Arrays toList() 也许能将一个数组转换成List 如下所示 //: Unsupported java // Sometimes methods defined in the Collection // interfaces don t work! package c newcollections; import java util *; public class Unsupported private static String[] s = one o three four five six seven eight nine ten ; static List a = Arrays toList(s); static List a = Arrays toList( new String[] s[ ] s[ ] s[ ] ); public static void main(String[] args) Collection print(a); // Iteration System out println( ntains( + s[ ] + ) = + ntains(s[ ])); System out println( ntainsAll(a ) = + ntainsAll(a )); System out println( a isEmpty() = + a isEmpty()); System out println( a indexOf( + s[ ] + ) = + a indexOf(s[ ])); // Traverse backwards: ListIterator lit = a listIterator(a size()); while(lit hasPrevious()) System out print(lit previous()); System out println(); // Set the elements to different values: for(int i = ; i < a.size(); i++) a.set(i, "47"); Collection1.print(a); // Compiles, but won\'t run: lit.add("X"); // Unsupported operation a.clear(); // Unsupported a.add("eleven"); // Unsupported a.addAll(a2); // Unsupported a.retainAll(a2); // Unsupported a.remove(s[0]); // Unsupported a.removeAll(a2); // Unsupported ///:~ 从中可以看出,实际只实现了Collection和List接口的一部分。Tw.wingWIT剩余的方法导致了不受欢迎的一种情况,名为UnsupportedOperationException。在下一章里,我们会讲述违例的详细情况,但在这里有必要进行一下简单说明。这里的关键在于“集合接口”,以及新集合库内的另一些接口,它们都包含了“可选的”方法。在实现那些接口的集合类中,或者提供、或者没有提供对那些方法的支持。若调用一个未获支持的方法,就会导致一个UnsupportedOperationException(操作未支持违例),这表明出现了一个编程错误。 大家或许会觉得奇怪,不是说“接口”和基础类最大的“卖点”就是它们许诺这些方法能产生一些有意义的行为吗?上述违例破坏了那个许诺——它调用的一部分方法不仅不能产生有意义的行为,而且还会中止程序的运行。在这些情况下,类型的所谓安全保证似乎显得一钱不值!但是,情况并没有想象的那么坏。通过Collection,List,Set或者Map,编译器仍然限制我们只能调用那个接口中的方法,所以它和Smalltalk还是存在一些区别的(在Smalltalk中,可为任何对象调用任何方法,而且只有在运行程序时才知道这些调用是否可行)。除此以外,以Collection作为自变量的大多数方法只能从那个集合中读取数据——Collection的所有“read”方法都不是可选的。 这样一来,系统就可避免在设计期间出现接口的冲突。而在集合库的其他设计方案中,最终经常都会得到数量过多的接口,用它们描述基本方案的每一种变化形式,所以学习和掌握显得非常困难。有些时候,甚至难于捕捉接口中的所有特殊情况,因为人们可能设计出任何新接口。但Java的“不支持的操作”方法却达到了新集合库的一个重要设计目标:易于学习和使用。但是,为了使这一方法真正有效,却需满足下述条件: (1) UnsupportedOperationException必须属于一种“非常”事件。也就是说,对于大多数类来说,所有操作都应是可行的。只有在一些特殊情况下,一、两个操作才可能未获支持。新集合库满足了这一条件,因为绝大多数时候用到的类——ArrayList,LinkedList,HashList和HashMap,以及其他集合方案——都提供了对所有操作的支持。但是,如果想新建一个集合,同时不想为集合接口中的所有方法都提供有意义的定义,同时令其仍与现有库配合,这种设计方法也确实提供了一个“后门”可以利用。 (2) 若一个操作未获支持,那么UnsupportedOperationException(未支持的操作违例)极有可能在实现期间出现,则不是在产品已交付给客户以后才会出现。它毕竟指出的是一个编程错误——不正确地使用了一个类。这一点不能十分确定,通过也可以看出这种方案的“试验”特征——只有经过多次试验,才能找出最理想的工作方式。 在上面的例子中,Arrays.toList()产生了一个List(列表),该列表是由一个固定长度的数组后推出来的。因此唯一能够支持的就是那些不改变数组长度的操作。在另一方面,若请求一个新接口表达不同种类的行为(可能叫作“FixedSizeList”——固定长度列表),就有遭遇更大的复杂程度的危险。这样一来,以后试图使用库的时候,很快就会发现自己不知从何处下手。 对那些采用Collection,List,Set或者Map作为参数的方法,它们的文档应当指出哪些可选的方法是必须实现的。举个例子来说,排序要求实现set()和Iterator.set()方法,但不包括add()和remove()。 cha138/Article/program/Java/JSP/201311/19772相关参考
计算机局部网操作系统有时称为网件(NETWARE),能支持网络中的服务器与工作站的通讯连网。 它由()组成。
计算机局部网操作系统有时称为网件(NETWARE),能支持网络中的服务器与工作站的通讯连网。它由()组成。A、系统管理服务程序B、网络文件服务器程序C、路由器软件D、工作站SHELL程序参考答案:BC
计算机局部网操作系统有时称为网件(NETWARE),能支持网络中的服务器与工作站的通讯连网。 它由()组成。
计算机局部网操作系统有时称为网件(NETWARE),能支持网络中的服务器与工作站的通讯连网。它由()组成。A、系统管理服务程序B、网络文件服务器程序C、路由器软件D、工作站SHELL程序参考答案:BC
简述中型颅脑损伤患者营养支持疗法的原则及营养补充途径。(具体
中型颅脑损伤患者营养支持疗法的原则是:高热量、高蛋白质但不升高血糖。营养补充的途径包括胃肠道内营养和胃肠道外营养。由于鼻饲胃肠道营养价格便宜和操作简便,若操作中细心正确,可避免误吸等严重并发症,所以目
简述中型颅脑损伤患者营养支持疗法的原则及营养补充途径。(具体
中型颅脑损伤患者营养支持疗法的原则是:高热量、高蛋白质但不升高血糖。营养补充的途径包括胃肠道内营养和胃肠道外营养。由于鼻饲胃肠道营养价格便宜和操作简便,若操作中细心正确,可避免误吸等严重并发症,所以目
知识大全 iPad mini 2,越狱了,想要恢复到未越狱时,怎么操作
iPadmini2,越狱了,想要恢复到未越狱时,怎么操作? 以下文字资料是由(本站网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下
从业人员经过安全教育培训,了解岗位操作规程,但未遵守而造成事故的,行为人应负()责任。
从业人员经过安全教育培训,了解岗位操作规程,但未遵守而造成事故的,行为人应负()责任。A.领导B.直接C.间接【参考答案】B[拓展知识]在单位办公室避震时,正确的做法是()。A.站在窗边观察外面的情况
从业人员经过安全教育培训,了解岗位操作规程,但未遵守而造成事故的,行为人应负()责任。
从业人员经过安全教育培训,了解岗位操作规程,但未遵守而造成事故的,行为人应负()责任。A.领导B.直接C.间接【参考答案】B[拓展知识]在单位办公室避震时,正确的做法是()。A.站在窗边观察外面的情况
从业人员经过安全教育培训了解岗位操作规程但未遵守而造成事故的行为人应负()责任。
从业人员经过安全教育培训了解岗位操作规程但未遵守而造成事故的行为人应负()责任。A.领导B.直接C.间接【参考答案】B[拓展知识]发生危险化学品事故后应该向()方向疏散。A.下风B.上风C.顺风[参考
从业人员经过安全教育培训了解岗位操作规程但未遵守而造成事故的行为人应负()责任。
从业人员经过安全教育培训了解岗位操作规程但未遵守而造成事故的行为人应负()责任。A.领导B.直接C.间接【参考答案】B[拓展知识]发生危险化学品事故后应该向()方向疏散。A.下风B.上风C.顺风[参考
尾管送入设计井段后,在未悬挂之前,如果被卡死,应怎么操作才能
尾管下完后,在下钻杆之前,应当认真记准尾管柱在钻井液中的重量。以便下入预定位置时确定钻杆与尾管之间的中和点。从理论上讲,退开时钻具悬重应处在中和点的位置。但经验证明,尾管被卡后这个位置往往掌握不准