Java 使用泛型创建类的基类的实例

Java 使用泛型创建类的基类的实例,java,generics,subclass,abstract,superclass,Java,Generics,Subclass,Abstract,Superclass,在我的Java项目中,我有一个使用泛型类型的抽象类。我的类由一些具体的子类扩展和实现。我的源代码如下: class Metrics<T extends Dataset> { public float evaluate(T dataset, Entity x, Entity y); } class MetricsType1 extends Metrics<DatasetType1> { public float evaluate(DatasetType1

在我的Java项目中,我有一个使用泛型类型的抽象类。我的类由一些具体的子类扩展和实现。我的源代码如下:

class Metrics<T extends Dataset>
{
    public float evaluate(T dataset, Entity x, Entity y);
}

class MetricsType1 extends Metrics<DatasetType1>
{
    public float evaluate(DatasetType1 dataset, Entity x, Entity y);
}

class MetricsType2 extends Metrics<DatasetType2>
{
    public float evaluate(DatasetType2 dataset, Entity x, Entity y);
}
Metrics metrics = null;
metrics = new MetricsType1();
// ...
metrics = new MetricsType2();
显然,Java解释器给了我一个警告,告诉我应该为类度量的泛型使用一个参数

我该怎么办

谢谢大家!

您需要
指标

如果有一个通用的基类型,您还可以使用
度量您想要的
度量

如果有一个通用的基类型,您还可以使用
度量您想要的
度量

如果有一个通用的基类型,您还可以使用
度量您想要的
度量

如果存在公共基类型,还可以使用
Metrics使用通配符:

Metrics<?> metrics;
Metrics;
或者,如果您想更具体一些:

Metrics<? extends Dataset> metrics;
Metrics使用通配符:

Metrics<?> metrics;
Metrics;
或者,如果您想更具体一些:

Metrics<? extends Dataset> metrics;
Metrics使用通配符:

Metrics<?> metrics;
Metrics;
或者,如果您想更具体一些:

Metrics<? extends Dataset> metrics;
Metrics使用通配符:

Metrics<?> metrics;
Metrics;
或者,如果您想更具体一些:

Metrics<? extends Dataset> metrics;

metricsop应该能够转换引用并使用正确的求值方法,对吗?擦除未知,但子类是直子类,可以使用instanceof检查。当然,强制转换到子类型允许调用
evaluate
。答案更新,以反映这一点。啊,谢谢。我需要从另一个类的方法调用度量的evaluate方法。我有类似的东西:公共网络构建(T数据集,度量)。我如何在此方法中调用metrics.evaluate而不引用metrics子类?如果您有
metrics
,则
evaluate
没有问题。问题源于通配符。更多信息,请看这个:好的,我看看。非常感谢。OP应该能够转换引用并使用正确的评估方法,对吗?擦除未知,但子类是直子类,可以使用instanceof检查。当然,强制转换到子类型允许调用
evaluate
。答案更新,以反映这一点。啊,谢谢。我需要从另一个类的方法调用度量的evaluate方法。我有类似的东西:公共网络构建(T数据集,度量)。我如何在此方法中调用metrics.evaluate而不引用metrics子类?如果您有
metrics
,则
evaluate
没有问题。问题源于通配符。更多信息,请看这个:好的,我看看。非常感谢。OP应该能够转换引用并使用正确的评估方法,对吗?擦除未知,但子类是直子类,可以使用instanceof检查。当然,强制转换到子类型允许调用
evaluate
。答案更新,以反映这一点。啊,谢谢。我需要从另一个类的方法调用度量的evaluate方法。我有类似的东西:公共网络构建(T数据集,度量)。我如何在此方法中调用metrics.evaluate而不引用metrics子类?如果您有
metrics
,则
evaluate
没有问题。问题源于通配符。更多信息,请看这个:好的,我看看。非常感谢。OP应该能够转换引用并使用正确的评估方法,对吗?擦除未知,但子类是直子类,可以使用instanceof检查。当然,强制转换到子类型允许调用
evaluate
。答案更新,以反映这一点。啊,谢谢。我需要从另一个类的方法调用度量的evaluate方法。我有类似的东西:公共网络构建(T数据集,度量)。我如何在此方法中调用metrics.evaluate而不引用metrics子类?如果您有
metrics
,则
evaluate
没有问题。问题源于通配符。更多信息,请看这个:好的,我看看。非常感谢。