【发布时间】:2014-08-09 20:13:39
【问题描述】:
我不确定我对标题的表述是否正确,但希望我的伪代码几乎是不言自明的。我不知道如何测试 SomeType 对象是否是 MyClass 的实例(或后代)。这怎么可能实现?
public class MyClass<SomeType>
{
//...
public void a(SomeType st)
{
if (SomeType extendsOrIs MyClass<?>) // Need help with this line
{
MyClass<?> mc = (MyClass<?>) st;
mc.b();
}
}
public void b()
{
//...
}
}
我发现的一个解决方案是这样做,但对象可能为 null,在这种情况下,我仍然想知道 SomeType 是否等同于 MyClass<?> 以便调用方法未来对象:
public void a(SomeType st)
{
if (st instanceof MyClass<?>)
{
MyClass<?> mc = (MyClass<?>) st;
mc.b();
}
}
【问题讨论】:
-
但对象可能为空?你的意思
-
null没有类 - 因此无法检查null值的类是什么,因为它没有类。
标签: java generics instanceof