泛型类的对象看看下面的类:构建从字符串中的Java
public class Range<T extends Comparable<T>>
{
public T lower;
public T upper;
public Range(String range){
Scanner scanner = new Scanner(range);
if(scanner.hasNextInt())
this.lower = scanner.nextInt();
if(scanner.hasNextInt())
this.upper = scanner.nextInt();
}
public String toString(){
return lower + " - " + upper;
}
}
在构造函数中,我试图从一个字符串构造一个对象。创建对象包含的值在String范围内。该字符串的格式类似于从toString方法返回的字符串。
这不会很容易,错误是在构造函数的最后两行,它说:“类型不匹配:不能从int转换为T.” Ofcourse ...因为T类型由用户决定,并且Scanner.nextInt()总是返回int。即使这可行,只有当T是int时,它才会起作用。但是让我们说,如果T只是int,那么它就可以工作。
有什么办法可以用这样的字符串构造这个类的对象,只有当T是int时。我怀疑是否有类似于C++中的类专业化的东西。
你得到我想要的,比方说那个字符串是“5 - 10”。我想低于5和10,他们需要整数。无论如何可能。
如果你只想要整数,为什么有一个泛型?只需将'lower'和'upper'都设为'int'即可。 – Tunaki
为什么你要使用**泛型**,当你有'int'的特定类型? – developer
我已经为扩展Comparable的所有类型创建了这个类,但是我知道这个构造函数只能在成员是int时才能工作。如果T是浮动的,那么我想为这种情况设置特殊的范围(字符串范围)。 – Scarass