Files
2025-11-17 13:31:32 +00:00

35 lines
757 B
Java

import com.intellij.util.concurrency.annotations.RequiresReadLock;
import com.intellij.util.concurrency.ThreadingAssertions;
public class SubtypingPolymorphism {
public void testMethod() {
Service[] services = {new FileService(), new UIService(), new DatabaseService()};
for (Service service : services) {
service.execute();
}
}
}
interface Service {
void execute();
}
class FileService implements Service {
@Override
@RequiresReadLock
public void execute() { }
}
class UIService implements Service {
@Override
public void execute() {
ThreadingAssertions.assertEventDispatchThread();
}
}
class DBService implements Service {
@Override
public void execute() {
ThreadingAssertions.assertReadAccess();
}
}