gpt4 book ai didi

java - 如何在 Java 中实例化泛型类型?

转载 作者:行者123 更新时间:2023-12-01 13:12:43 25 4
gpt4 key购买 nike

package edu.uab.cis;

public class Fraction<Num> extends java.lang.Number{

private <Num> numerator;
private <Num> denominator;


public Fraction(Num num, Num denom)
{
this.numerator = num;
this.denominator = denom;
}



public double doubleValue() {

return 0;
}


public float floatValue() {

return 0;
}


public int intValue() {

return 0;
}


public long longValue() {

return 0;
}


public <Num> void number(Num num)
{

}

}

我正在尝试创建一个通用类型,它将采用上述所有基本类型,这样我就可以只使用一种方法而不是使用多种方法。如何使用泛型类型正确实例化我的方法,以便它将采用所有数字类型且仅采用数字类型?

最佳答案

将类行更改为

public class Fraction<Num extends Number> extends java.lang.Number  {

消除变量声明周围的括号:

private Num numerator;

并创建一个新实例,例如

Fraction<Integer> intFrac = new Fraction<Integer>(1, 2);

除非我误解了您的意思,否则您可以从 number(Num num) 函数的签名中删除

您还应该考虑将 Num 更改为 N,因为单个大写字母是泛型的约定,并且 Num 可能会被混淆为类名。

关于java - 如何在 Java 中实例化泛型类型?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22726139/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com