我有主类和一些子类,我有静态方法来返回实例
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()
方法。
答案 0 :(得分:1)
虽然这不是我亲自接近代码布局或“欺骗IDE”黑客的方式,但是让代码与自动完成一起工作的方法(在Eclipse PDT Helios中......也许NetBeans的行为相同)是to(mis)在类docblocks中为你的两个子类使用@method标记:
/**
* @method son get() returns a son
*/
class son extends dad{}
/**
* @method daughter get() returns a daughter
*/
class daughter extends dad{}
在我的IDE测试中,这足以让autocompletion识别出son :: get()会返回一个“son”对象,而daughter :: get()会返回一个“子”对象。
同样,这是对@method标记的意图的误用,但它确实以您要求的方式启用自动完成。