我需要重写隐藏类的一个方法(用@hide标记),它只在其包中可见。有什么方法可以扩展它吗?Java如何扩展一个隐藏类
更具体地说,我需要重写的android.widget.EditorgetNextCursorOffset()
因为该方法不ReplacementSpan
很好地工作。
我需要重写隐藏类的一个方法(用@hide标记),它只在其包中可见。有什么方法可以扩展它吗?Java如何扩展一个隐藏类
更具体地说,我需要重写的android.widget.EditorgetNextCursorOffset()
因为该方法不ReplacementSpan
很好地工作。
您可以在您的项目中定义相同的包,android.widget
。那么你可以扩展它:
public class ProjectSpecificEditor extends Editor {
// constructors et all
public int getNextCursorOffset() {
//...
}
}
但请注意,这是不鼓励。即框架的下一个版本可能会改变一些类/方法签名。那么你只能责怪你自己。
为什么不使用你自己的装饰器和编辑器的所有方法,只需要getNextCursorOffset? – SMA
@SMA你的意思是克隆Editor.java?这将是疯狂的,因为它有5K +代码行。 – mljli
不克隆。你会在你的新类中编写编辑器,并将其他方法的调用委托给Editor实例,而对于getNextCursorOffset,则可以实现自己的逻辑。 – SMA