[英]Casting Interface to Class in Java
在Java中,有一个具有参数的方法,该参数是一个Interface。 使用这样的方法,我可以强制转换为具体的课程吗?
我该如何计算这种演出的成本?
示例-将接口强制转换为类:
public void convertToClass(IUser iu) {
User u = (User) iu;
}
就像在评论中说的那样,实际上这不是性能问题,而是表达您的意图:如果您需要特定的类,则应该要求它,而不是接口。 但是,通常情况是,您可以先需要一个接口,然后通过该接口进行操作,而完全不使用强制类型转换。 这也是通常应这样做的方式。 您应该探索这种可能性。
至于实际的问题:强制转换有一些开销,但是在几乎任何用例中都没有关系。 开销来自检查是否可以进行强制转换,如果不能,则引发异常。 如果您有兴趣进一步讨论铸造的开销,可以在此处阅读有关它的更多信息。 如果您不想测量开销,则应使用“ 如何在Java中编写正确的微基准测试”中概述的方法。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.