Java 测试类';s泛型参数本身就是具有自己泛型参数的同一类
我不确定我的标题措辞是否正确,但希望我的伪代码几乎是自解释的。我不知道如何测试Java 测试类';s泛型参数本身就是具有自己泛型参数的同一类,java,generics,instanceof,Java,Generics,Instanceof,我不确定我的标题措辞是否正确,但希望我的伪代码几乎是自解释的。我不知道如何测试SomeType对象是否是MyClass的实例(或其后代)。如何做到这一点 public class MyClass<SomeType> { //... public void a(SomeType st) { if (SomeType extendsOrIs MyClass<?>) // Need help with this line
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的第一个不是任何类的实例。您可以在
MyClass
中创建final方法,例如:-
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 final boolean isSubClass()
{
if(this.getClass()!=MyClass.class){
return true;
}
return false;
}
public void a(SomeType st)
{
if (st instanceof MyClass<?>)
{
MyClass<?> mc = (MyClass<?>) st;
mc.isSubClass();
}
}
公共类MyClass
{
//...
公共空间a(某些类型st)
{
if(SomeType extendsOrIs MyClass)//需要此行的帮助吗
{
MyClass mc=(MyClass)st;
mc.b();
}
}
公共最终布尔IsubClass()
{
if(this.getClass()!=MyClass.class){
返回true;
}
返回false;
}
公共空间a(某些类型st)
{
if(MyClass的st实例)
{
MyClass mc=(MyClass)st;
mc.isSubClass();
}
}
但对象可能为null??您的意思是null
没有类-因此无法检查null
值的类是什么,因为它没有类。
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 final boolean isSubClass()
{
if(this.getClass()!=MyClass.class){
return true;
}
return false;
}
public void a(SomeType st)
{
if (st instanceof MyClass<?>)
{
MyClass<?> mc = (MyClass<?>) st;
mc.isSubClass();
}
}