Does the addition of a “synchronized” exposure method apply?

my problem is that:

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
        }
    });

when the text changes too quickly, and stream 1 or stream 2 does not completely dry out, or maybe some problems, so I want to add synchronizedhow is public synchronized void modifyText(ModifyEvent e) this still an override method and will it work?

+4
source share
3 answers

Adding a keyword synchronizeddoes not prevent you from overriding a method (it is still overridden), since the method signature remains the same.

See JLS-§9.4.1.3 for more details.

+3
source

" , , . - , .

, , .

+5

, .

abstract class SynchronizedClass {
    public synchronized String myIterfaceMethod(String str){
        return str;
    }

}

public class OverrideSynchronozied extends SynchronizedClass{

    @Override
    public String myIterfaceMethod(String str){
        return str;
    }

    public static void main(String[] args) {
        SynchronizedClass ss = new OverrideSynchronozied();
        System.out.println(ss.myIterfaceMethod("Class Instance"));
    }

}
+3

All Articles