我想隐藏用户可继承类中的一些方法。 例如:
public class Test extends TextView {
public Test(Context context) {
super.onCreate(context);
}
/* hide this method */
@Override
protected void setText(CharSequence text) {
super.setText(text);
}
}
然后我不想在Test类中看到这个方法。 我该怎么做?对不起我的英文
答案 0 :(得分:0)
这听起来像一个设计问题,因为隐藏它似乎有点脏,因为分配给子类的基类应该仍然能够调用基类方法。
但是,你可以做两件事之一。将方法标记为已弃用。注意:弃用通常用于告诉人们不使用方法b / c它很快就会被移除但仍然可以使用,而在这里它根本不起作用(大概)......
AND在方法中抛出UnsupportedOperationException,以便你/其他人在调用它时尽早捕获它。
/*
* @deprecated Do not call this method.
*/
@Deprecated
@Override
protected void setText(CharSequence text) {
throw new UnsupportedOperationException("not supported");
}
而不是子类化考虑组合。我的意思是创建一个包装所需类的类,并只显示你想要的类。如果您需要原始类和包装类之间的通用接口,请创建一个它们实现并使用接口但使用新类实例化的接口。