Java 如何避免原始类型混合泛型继承和内部类?

Java 如何避免原始类型混合泛型继承和内部类?,java,generics,inheritance,inner-classes,Java,Generics,Inheritance,Inner Classes,我的类是从父类继承的,父类通过祖辈使用泛型。 这个类还包含一个内部类-用于构建器。 当我影响一个泛型类型的变量时,我得到了一个编译警告 这是我的项目的一个过于简化的版本 Other.java 祖父母java Java中使用祖父母泛型类型的正确方法是什么 换句话说,如何使other类型从idunsafestuff()匹配祖父母泛型 请注意,我想了解问题所在,而不是抑制警告。问题在于: public class Parent<T> extends GrandParent 公共类父类扩展

我的类是从父类继承的,父类通过祖辈使用泛型。 这个类还包含一个内部类-用于构建器。 当我影响一个泛型类型的变量时,我得到了一个编译警告

这是我的项目的一个过于简化的版本

Other.java 祖父母java Java中使用祖父母泛型类型的正确方法是什么

换句话说,如何使
other
类型从
idunsafestuff()
匹配祖父母泛型

请注意,我想了解问题所在,而不是抑制警告。

问题在于:

public class Parent<T> extends GrandParent
公共类父类扩展祖父母类
换成

public class Parent<T> extends GrandParent<T>
公共类父类扩展祖父母类
以使父级<代码>和祖辈<代码>具有相同的泛型类型参数


否则
Parent
的泛型类型参数
T
protectedt之间没有关系
祖父母的成员

公共类Parent扩展祖父母
-为什么要扩展原始祖父母祖父母。清晰、简短,带有适当的错误描述和MCVE。我希望所有的问题都能问得这么仔细。@Seelenvirtuose恐怕过于简单了(见下文)。但是干杯。@user2357112问得好。我想我是在寻找正确的语法,因为我也遇到了这个不在范围内的编译错误-见下文。警告与错误:通过一个简单的警告,您会觉得更接近解决方案,对吗?谢谢。恐怕它解决了这个例子而没有解决我的问题。我的例子中的错误过于简化了。但你给我指明了正确的方向。关于信息,
T
还扩展了另一个类(
公共类祖父母
),因此我得到了一个
错误:类型参数T#1不在类型变量T#2的范围内。为了防止对某人有所帮助,我用以下语法解决了这个问题:
公共类Parent扩展了祖父母
public class GrandParent<T>
{
    protected T t;
}
public class Parent<T> extends GrandParent
{}
public class Child extends Parent<Other>
{
    // Inner class
    public static class Inner
    {
        public void iDoUnsafeStuff(Other other) {
            Child child = new Child();
            child.t = other;
        }
    }
}
Child.java:8: warning: [unchecked] unchecked assignment to variable t as member of raw type GrandParent
        child.t = other;
public class Parent<T> extends GrandParent
public class Parent<T> extends GrandParent<T>