Java 如何限制某些泛型类只接受整数?甚至不接受Double,只接受int值 { 公共静态void main(字符串[]args) { G a=新G(10.9); G b=新G(“你好”); G c=新的G(“地狱”); System.out.println(a.getObject());//打印10.9 System.out.println(b.getObject());//打印hello System.out.println(c.getObject());//打印地狱 } } G类{ 整数obj; G(整数obj) { obj=obj; } 公共整数getObject() { 返回此.obj; } }
在上面的代码中,只有在main方法中接受everytype时,才将G类作为Integer类型有什么用?如何实现G类只接受整数值,如果我输入双精度值,而只接受整数,则不转换为双精度值。像这样。如前所述,不要使用泛型。只需让构造函数只接受整数类型。如果添加setter,则只接受整数类型Java 如何限制某些泛型类只接受整数?甚至不接受Double,只接受int值 { 公共静态void main(字符串[]args) { G a=新G(10.9); G b=新G(“你好”); G c=新的G(“地狱”); System.out.println(a.getObject());//打印10.9 System.out.println(b.getObject());//打印hello System.out.println(c.getObject());//打印地狱 } } G类{ 整数obj; G(整数obj) { obj=obj; } 公共整数getObject() { 返回此.obj; } },java,generics,type-conversion,typecasting-operator,Java,Generics,Type Conversion,Typecasting Operator,在上面的代码中,只有在main方法中接受everytype时,才将G类作为Integer类型有什么用?如何实现G类只接受整数值,如果我输入双精度值,而只接受整数,则不转换为双精度值。像这样。如前所述,不要使用泛型。只需让构造函数只接受整数类型。如果添加setter,则只接受整数类型 { public static void main(String[] args) { G<Double> a=new G<Double>(10.9);
{
public static void main(String[] args)
{
G<Double> a=new G<Double>(10.9);
G<String> b=new G<String>("hello");
G c=new G("hell");
System.out.println(a.getObject()); // print 10.9
System.out.println(b.getObject()); // print hello
System.out.println(c.getObject()); // print hell
}
}
class G<Integer> {
Integer obj;
G(Integer obj)
{
this.obj=obj;
}
public Integer getObject()
{
return this.obj;
}
}
如果您只希望它使用
Integer
,为什么它需要是泛型的?只需使用Integer
作为字段、参数和返回类型的类型。不要声明新的类型参数(尤其不要声明名为Integer
,从java.lang
隐藏Integer
名称的参数)。如何使某些类严格接受整数?我的评论中的第二句和第三句解释了如何做到这一点。第二句和第三句***
class G {
Integer obj;
G(Integer obj)
{
this.obj=obj;
}
public Integer getObject()
{
return this.obj;
}
}