我有主类和一些子类,我有静态方法返回实例
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标签意图的误用,但它确实以您要求的方式启用了自动完成。