gpt4 book ai didi

Java 新手无法理解某些 `new` 语法

转载 作者:行者123 更新时间:2023-12-01 06:18:53 27 4
gpt4 key购买 nike

我是 Java 的新手。我用其他语言编程,我主要在需要使用仅作为 Java 提供的第三方库时使用 Java。因此,我对这门语言只有非常基本的了解。但通常这足以完成我的业务。

今天我遇到了一个非常基本的问题,我无法用谷歌搜索或查找它。在下面的代码片段中,我根本不理解 new GSRadContext 行:

GSRBristowCampbellStrategy algo = new GSRBristowCampbellStrategy();
RadData rd = new RadData();

...

GSRadContext gsr = new GSRadContext( (IAGSRadStrategy) algo);
gsr.evaluate(rd);

在我有限的 Java 经验中,我以前从未在 new object() 调用中看到过这种类型的语法。你能给我解释一下 (IAGSRadStrategy) 位是怎么回事吗?

感谢您为我的教育做出的贡献。

最佳答案

这个位:

(IAGSRadStrategy) algo

完全独立于构造函数。如果有帮助,您可以将第二段代码视为:

IAGSRadStrategy tmp = (IAGSRadStrategy) algo;
GSRadContext gsr = new GSRadContext(tmp);
gsr.evaluate(rd);

这只是一个类型转换表达式。在不知道所涉及的类型层次结构的情况下,很难确切地知道为什么要在这里使用它,但是通常强制转换基本上是告诉编译器,“你只知道这个表达式是 Foo,但是知道它是一个 Bar...所以请在执行时为我检查它,然后将值作为这个表达式结果的 Bar。"

关于Java 新手无法理解某些 `new` 语法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5008003/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com