可以在Java中实现私有接口或扩展私有类吗?

可以在Java中实现私有接口或扩展私有类吗?,java,android,Java,Android,我与androidEditText斗争了好几天,试图在选择文本时摆脱“粘贴”弹出窗口。(我的扩展编辑文本为只读且可选择) 从anwser到问题: 覆盖包私有方法canPaste()对于dalvik运行时是可以的,但是对于上面使用ART的android 5.0将不起作用 因此我找到了解决问题的其他方法,而不是跳过该方法,而是尝试替换编辑器的字段变量 我查看了EditText的助手类Editor得到了很多特定的逻辑,如果我能在适当的时间用一个伪子类替换InsertionPointCursorCont

我与android
EditText
斗争了好几天,试图在选择文本时摆脱“粘贴”弹出窗口。(我的扩展编辑文本为只读且可选择)

从anwser到问题:

覆盖包私有方法
canPaste()
对于dalvik运行时是可以的,但是对于上面使用ART的android 5.0将不起作用

因此我找到了解决问题的其他方法,而不是跳过该方法,而是尝试替换编辑器的字段变量

我查看了
EditText
的助手类
Editor
得到了很多特定的逻辑,如果我能在适当的时间用一个伪子类替换
InsertionPointCursorController
,它将不会显示弹出窗口。(InsertionPointCursorController是一个私有类,它实现了一个私有接口,因此要用一个伪子类替换它,我需要扩展该类或实现该接口)

查看getInsertionController().showWithActionPopup()显示弹出窗口:(


现在,我将尝试替换前活动的remove回调,因为您不能扩展外部私有类(在同一个包中默认,在其他包中受保护)和接口

扩展您需要更改的父类,并重写您需要使用的方法,但同样不能重写私有方法。
你可以重新编码它们(相当“重载”)。

你不能有一个外部的
private
类。而且,我看不出你的问题和标题之间有什么联系。外部接口不能是私有的,只有内部接口可以。
private
package private
是两个不同的东西。
public boolean performLongClick(boolean handled) {
    // Long press in empty space moves cursor and shows the Paste affordance if available.
    if (!handled && !isPositionOnText(mLastDownPositionX, mLastDownPositionY) &&
            mInsertionControllerEnabled) {
        final int offset = mTextView.getOffsetForPosition(mLastDownPositionX,
                mLastDownPositionY);
        stopSelectionActionMode();
        Selection.setSelection((Spannable) mTextView.getText(), offset);
        getInsertionController().showWithActionPopup();
        handled = true;
    }