私がやろうとしていること:
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