好的。我正在为我的 java 程序进行一些反思,但我被困在一个看似简单但不起作用的部分。
这是我正在尝试做的事情:
Thread t = new Thread();
System.out.println("Casting "+Thread.class.getName()+" to "+Runnable.class.getName());
Object newThread = Runnable.class.cast(t);
System.out.println("New class: "+newThread.getClass().getName());
但是,预期的输出将是
New class: java.lang.Runnable
,它会返回New class: java.lang.Thread
。
我究竟做错了什么?(请注意,在这种情况下,我不能通过括号使用普通转换)