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();
        }
    }