虽然经历了这个问题:" 如果一个对象包含一个链表内检查 ",我发现用户正试图通过一个字符串参数到包含类型链表的链表的方法:
LinkedList<LinkedList> list = new LinkedList<LinkedList>();
list.contains("String");
Run Code Online (Sandbox Code Playgroud)
这不会引发任何编译错误,因为'contains'方法接受java.lang.Object并允许向其传递字符串值.
所以,只是出于好奇,我想知道为什么这种方法选择接受"对象",当它可能已被限制为仅接受列表类型(就像添加).是不是打败了泛型的整个目的,即"在编译时更强的类型检查"?
这是一些简单的Java代码:
String s = new StringBuilder().append("a").append("b").append("c").toString();
Run Code Online (Sandbox Code Playgroud)
我用JRE 1.6编译它,我在反编译的类文件中观察到以下内容:
String s = "a" + "b" + "c";
Run Code Online (Sandbox Code Playgroud)
根据这个观察我有以下问题: