添加"synchronized"会影响方法覆盖吗?

pau*_*aul 5 java overriding synchronized

我的问题是:

search_text.addModifyListener(new ModifyListener() {
        @Override
        public void modifyText(ModifyEvent e) {
            ArrayList<Object> GPDMvalue = (ArrayList<Object>) multiSortList.getValue();
            ArrayList<Map<String, Object>> valueList = getDefaultValue(GPDMvalue);
            multiSortList.clear();
            if(getGPDMList().size()==0)return;
            multiSortList.setDataSource(getGPDMList());//new thread 1
            multiSortList.setDefaultOrAddValue(valueList);//new thread 2
        }
    });
Run Code Online (Sandbox Code Playgroud)

当文本变化太快,并且线程1或线程2没有完全执行,可能是一些问题,所以我想添加synchronized这样的 public synchronized void modifyText(ModifyEvent e),这仍然是一个覆盖方法,它会工作吗?

Dai*_*run 5

"方法是否同步是该方法的实现细节.同步不是作为声明性契约在任何地方指定的 - 它也不像您可以在接口中同步.

一个类如何实现它提供的任何线程安全保证取决于它."

取自这里


alf*_*sin 3

添加synchronized关键字不会妨碍重写方法(它仍然被重写),因为方法的签名保持不变。

\n\n

有关更多详细信息,请参阅JLS-\xc2\xa79.4.1.3

\n