1

我们很快就会从 ColdFusion 10 迁移到 ColdFusion 2016,并注意到我们在现有代码库中遇到了一些我们感到困惑的错误。

我们有几个组件,它们的方法有望返回特定类型。在 2016 之前的 ColdFusion 版本中,我们将指定包含该类型的组件的完整路径,以使其正常工作。

例如,这在 ColdFusion 2016 中不起作用

public root.model.beans.MyObject function CreateMyObject()
{
    // blah blah...
}

在 ColdFusion 2016 下运行相同的代码会产生错误"The value returned from the CreateMyObject function is not of type root.model.beans.MyObject"(确实如此)。

这在 ColdFusion 2016中确实有效:

public MyObject function CreateMyObject()
{
    // blah blah...
}

ColdFusion 10 中的情况正好相反——第一个示例有效,而第二个示例无效。

我的问题是为什么会这样?是否有一些设置可以控制这种行为?我担心尝试引用具有相同名称但路径不同的组件时会产生什么结果。如何区分 /root/model/beans/ 中的 Service.cfc 组件和 /root/widget/api/ 中的组件?

我想我们可以将所有受影响的返回类型更改为“任何”,但我们为什么必须这样做呢?

我确定我错过了一些非常简单的东西,并且希望能帮助我确定它是什么。谢谢。

4

0 回答 0