我正在寻找一种将一些方法添加到现有类中的方法,如下所示:
String s = "";
s.doSomething();
在目标 C 中,我可以使用类别来执行此操作。
@interface NSString( Stuff)
-(void)doSomething();
@end
android有这样的东西吗?还是另一个黑客?
更新:实际上,我遇到了这个问题:我使用了 jar 文件中的一个类(不是最终的)(所以,我不能触及它的源代码)。然后我想在不使用继承的情况下将方法(或类似的东西)添加到这个类中。例如:
public class Provider{
// many methods and fields go here...
public String getName(){}
}
我想做的就是:
provider.print(); //that call getName() method;
我也尝试了代理模式,它有效,但我不喜欢这种方式(因为它像一个包装类,我必须存储一个具有许多字段和方法的对象才能仅使用一种方法):
public class ProxyProvider{
Provider provider;
public ProxyProvider(Provider provider){
this.provider = provider;
}
public void print(){
String name = provider.getName();
//do something
}
}
有没有办法解决这个问题?