为了账号安全,请及时绑定邮箱和手机立即绑定

将泛型参数传递给方法

将泛型参数传递给方法

狐的传说 2022-10-12 16:05:28
我对 Java 中的泛型编程有一个小问题。有没有办法检查传递给方法的参数的类型?我想比较调用该方法的实例的类型以及传递给它的参数。如果它们不相同,则应停止该方法的操作(保护种类)。public void homeMatch(SportTeam<Type> visitors){    if(the type of visitors and this-object are not the same){         //do this    }    else{         //do something different    }}
查看完整描述

3 回答

?
FFIVE

TA贡献1797条经验 获得超6个赞

您不能Type在运行时操作,因为它会被编译器擦除。它仅存在于用于设计目的的源代码中。

更具体地说,这个方法签名将被编译成类似的东西

public void homeMatch(SportTeam visitors)


查看完整回答
反对 回复 2022-10-12
?
守着一只汪

TA贡献1872条经验 获得超3个赞

如果您真的想要进行检查,您可以做的是将类参数添加到函数参数中。然后将 classParameter 与 this 的类进行比较。这会起作用,因为访问者具有与 typeClass 相同的泛型类型。


public<Type> void homeMatch(Class<Type> typeClass, SportTeam<Type> visitors){

    if (typeClass.getClass() == this.getClass()){


    }

}


查看完整回答
反对 回复 2022-10-12
?
凤凰求蛊

TA贡献1825条经验 获得超4个赞

如果我理解正确,您必须使用 instanceof 。像这样:

if (visitors instanceof Type) { 
     // action
     }


查看完整回答
反对 回复 2022-10-12
  • 3 回答
  • 0 关注
  • 88 浏览

添加回答

举报

0/150
提交
取消
微信客服

购课补贴
联系客服咨询优惠详情

帮助反馈 APP下载

慕课网APP
您的移动学习伙伴

公众号

扫描二维码
关注慕课网微信公众号