PSALM:Docblock定义的类或接口不存在

问题描述

我有以下代码

namespace Some\Space\Utility;

use Doctrine\Common\Collections\ArrayCollection;
use Doctrine\Common\Collections\Collection;

/**
 * @psalm-template T
 */
class SomeAdapter
{
    /**
     * Some method
     *
     * @psalm-param iterable<int,T> $data
     *
     * @psalm-return Collection<int,T>
     */
    public static function doSomething($data): Collection
    {
        if (is_array($data)) {
            $data = new ArrayCollection($data);
        }

        return $data;
    }
}

可能我错过了一些东西,但是我遇到了@psalm-param的以下错误

诗篇:UndefinedDocblockClass:Docblock定义的类或接口Some \ Space \ Utility \ T不存在

解决方法

问题在于该函数是静态的。这是正确的解决方案:

    /**
     * Some method
     *
     * @psalm-template T
     * @psalm-param iterable<int,T> $data
     *
     * @psalm-return Collection<int,T>
     */

必须在方法上定义模板。

相关问答

Selenium Web驱动程序和Java。元素在(x,y)点处不可单击。其...
Python-如何使用点“。” 访问字典成员?
Java 字符串是不可变的。到底是什么意思?
Java中的“ final”关键字如何工作?(我仍然可以修改对象。...
“loop:”在Java代码中。这是什么,为什么要编译?
java.lang.ClassNotFoundException:sun.jdbc.odbc.JdbcOdbc...