Ich arbeite an Java Event Manager, und ich möchte neue Zukunft hinzufügen. Es ist benutzerdefinierte Klassenauswahl oder benutzerdefinierte übereinstimmende Klassensystem.Synchronisation in abstrakte Klasse
EventManager eventManager = new EventManager();
Möglichkeiten, wie neue Klasse Wähler auf Event-Manager zu setzen:
eventManager.setClassSelector(Class<? extends ClassSelector> classSelector);
eventManager.setClassSelector(ClassSelector classSelector);
Diese Methode unter Verwendung von Klassenauswahl:
eventManager.callEvent(event);
Es ist Struktur ClassSelector
public abstract class ClassSelector{
public List<Class<?>> classSelection(Class<?> clazz);
}
Methode classSelection in ClassSelector muss synchronisiert werden, da callEvent ThreadPool mit mehreren Threads und nur einer Instanz von ClassSelector verwendet.
Aber synchronisieren Schlüsselwort ist nicht von der Superklasse geerbt. Ich brauche Ratschläge, wie ich dieses Problem lösen kann, indem ich den Code ändere oder die Logik ändere.
Nicht verwandt: Sehen Sie sich die Benennung Ihrer Methode an. Normalerweise gehen sie verbObject. Also 'classSelection()' ist nicht ideal ... – GhostCat