在处理面试问题时,我遇到了以下代码:
List<Object> list = new ArrayList();
Map<Object, ? super ArrayList> m = new HashMap<Object, ArrayList>();
m.put(1, new Object());
m.put(2, list);
Run Code Online (Sandbox Code Playgroud)
上面两个put方法都是抛出编译时错误.但是,当我添加m.put(3, new ArrayList());
它时添加到map没有编译时错误.
我很清楚我可以添加new Object()
一个值,HashMap
因为map声明属于类型< ? super ArrayList>
; 这意味着我可以补充一点,高于任何值ArrayList
(即超级的ArrayList
)和ArrayList
下面反对过,但没有什么ArrayList
.
这个特殊的概念在Kathy Sierra和Bert Bates的SCJP 6中写得非常好,基于该理论和实例,我认为它应该按照我的理解工作.有人可以帮我理解错误吗?
最近,我一直在使用XML解析器.这只是我的开始,我设法了解如何在java中使用DOM解析器类,DocumentBuilderFactory
并DocumentBuilder
解析XML文档.
DocumentBuilderFactory dbf = DocumentBuilderFactory.newInstance();
DocumentBuilder db = dbf.newDocumentBuilder();
Run Code Online (Sandbox Code Playgroud)
我问自己是怎么一个抽象类,如DocumentBuilderFactory
和DocumentBuilder
,被允许实例化新实例?然后在另一个例子中我看到:
Calendar calendar = Calendar.getInstance();
System.out.println(calendar.get(Calendar.DATE));
Run Code Online (Sandbox Code Playgroud)
getInstance()
和newInstancce()
方法是否创建了上述抽象类的实例?我是否遗漏了使用抽象类及其新对象的内容?
class Beta { }
class Alpha {
static Beta b1 ;
Beta b2;
}
public class Tester {
public static void main(String[] args) {
Beta b1 = new Beta();
Beta b2 = new Beta();
Alpha a1 = new Alpha();
Alpha a2 = new Alpha();
a1.b1 = b1 ;
a1.b2 = b1 ;
a2.b2 = b2 ;
a1 = null ;
b1 = null;
b2 = null;
System.out.println(" Line 1 " + " a1 " + a1.b1);
System.out.println(" Line 2 " …
Run Code Online (Sandbox Code Playgroud) 我不确定树(引用变量)如何在我的示例程序53,00中成为对象Tree的实例?我期待"Pine"和"oops"作为输出,但为什么"Tree"包含在输出中?我还没有给Tree tree = new Tree().
class Tree{}
class Pine extends Tree{}
class Oak extends Tree{}
public class forrest {
public static void main( String[] args )
{
Tree tree = new Pine();
if( tree instanceof Pine )
System.out.println( "Pine" );
if( tree instanceof Tree )
System.out.println( "Tree" );
if( tree instanceof Oak )
System.out.println( "Oak" );
else System.out.println( "Oops" );
}
}
Run Code Online (Sandbox Code Playgroud) 有人可以帮忙吗?
一个测试给定数字是否为十六进制的程序?该号码必须从用户输入.如果它不是十六进制,则必须抛出异常.例外必须是用户定义的.
java ×5
exception ×1
generics ×1
hashmap ×1
hex ×1
instanceof ×1
oop ×1
superclass ×1
wildcard ×1