私がやろうとしていること:
Java継承による型チェックを動的に行います。私には2つのクラスがあります: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