Java 使用泛型创建类的基类的实例
在我的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
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
没有问题。问题源于通配符。更多信息,请看这个:好的,我看看。非常感谢。