簡體   English   中英

如何在Java中實例化泛型類型?

[英]How do I instantiate Generic types in Java?

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>。

您還應該考慮將Num更改為N ,因為泛型的約定是單個大寫字母,並且Num可以混淆為類名。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM