我正在尝试做的事情:
动态地使用 Java 继承进行类型检查。我有两个类:1)com.example.Event
和 2)com.example.TransactionEvent
扩展com.example.Event
. 我有一个函数Class<?> type
返回要检查的类型。
代码:
public class Event{}
public class TransactionEvent extends Event{}
public interface Listener
{
public Class<?> type();
}
public void checkType(Event obj, Listener listener)
{
System.out.println(obj.getClass().toString());
System.out.println(listener.type().toString());
if (obj.getClass().isInstance(listener.type()))
System.out.println("yay!");
}
输出:
class com.example.TransactionEvent
class com.example.Event
(no Yay)
不是TransactionEvent
instanceof Event
,因为它继承自它吗?