繁体   English   中英

将接口转换为Java类

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM