如何设置“静态/自我”返回类型



我有主类和一些子类,我有静态方法返回实例

class dad{
    public function __construct($arg){
    }
    // it returns caller class'es object
    public static function get($arg){
        return new static($arg);
    }
}
class son exteneds dad{
    public function __construct($arg){
    }
    public function sonFunc(){
    }
}
class daughter extends dad{
    public function __construct($arg){
    }
    public function daughterFunc(){
    }
}

现在,我想让Netbeans IDE知道,son::get()->应该由son方法自动完成,而daughter::daughter()->应该由daughter方法自动完成

有可能吗?或者可能有其他解决办法?
我不想在所有子类中重写get()方法

虽然这不是我个人如何处理代码布局或"欺骗IDE"的hack,一种方法,使您的代码工作与自动完成(在Eclipse PDT Helios…也许NetBeans也会这样做)是(错误地)在类文档块中为您的两个子类使用@method标签:

/**
 * @method son get() returns a son
 */
class son extends dad{}
/**
 * @method daughter get() returns a daughter
 */
class daughter extends dad{}

在我的IDE测试中,这足以让自动补全识别出son::get()将返回一个"子"对象,而daughter::get()将返回一个"子"对象。

再次说明,这是对@method标签意图的误用,但它确实以您要求的方式启用了自动完成。

相关内容

  • 没有找到相关文章

最新更新