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)
{
}
}
我试图创建一个泛型类型,它将采用所有上述原始类型,因此我可以使用一种方法而不是使用多种方法。如何正确地使用泛型类型实例化我的方法,以便它将采用所有数字类型和仅数字类型?
答案 0 :(得分:1)
将班级行更改为
public class Fraction<Num extends Number> extends java.lang.Number {
消除变量声明周围的括号:
private Num numerator;
并使用例如
创建一个新实例Fraction<Integer> intFrac = new Fraction<Integer>(1, 2);
除非我误解你,否则你可以消除&lt; Num&gt;来自number(Num num)
函数的签名。
您还应该考虑将Num
更改为N
,因为单个大写字母是泛型的惯例,Num
可能会混淆为类名。