我是Java新手,我试图理解为什么第一个代码片段不会导致此异常,但第二个代码片段会导致此异常.由于在两种情况下都将字符串数组传递给Arrays.asList,因此两个片段是否都不会产生异常或不产生异常?
Exception in thread "main" java.lang.ClassCastException: java.util.Arrays$ArrayList cannot be cast to java.util.ArrayList
Run Code Online (Sandbox Code Playgroud)
第一个片段(没有例外):
ArrayList<ArrayList<String>> stuff = new ArrayList<ArrayList<String>>();
String line = "a,b,cdef,g";
String delim = ",";
String[] pieces = line.split(delim);
stuff.add((ArrayList<String>) Arrays.asList(pieces));
Run Code Online (Sandbox Code Playgroud)
第二个片段(导致以上异常):
ArrayList<ArrayList<String>> stuff = new ArrayList<ArrayList<String>>();
String[] titles = {"ticker", "grade", "score"};
stuff.add((ArrayList<String>) Arrays.asList(titles));
Run Code Online (Sandbox Code Playgroud)
如果相关,我在Eclipse Helios中使用JavaSE 1.6.
我想将Python的内置set类与我创建的自定义类一起使用.如果我想创建包含我的自定义类实例的集合,我需要实现哪些函数才能执行测试,比如set_a - set_b?
我正在使用optparse模块进行选项/参数解析.出于向后兼容性原因,我无法使用argparse模块.如何格式化我的epilog消息以保留换行符?
在下面的例子中,我希望将epilog打印为格式化.
epi = \
"""
Examples usages:
Do something
%prog -a -b foo
Do something else
%prog -d -f -h bar
"""
parser = optparse.OptionParser(epilog=epi)
Run Code Online (Sandbox Code Playgroud)