Is there an unsupported operation annotation in Java?

Viewed 4648

Are there any annotations in java which mark a method as unsupported? E.g. Let's say I'm writing a new class which implements the java.util.List interface. The add() methods in this interface are optional and I don't need them in my implementation and so I to do the following:

public void add(Object obj) {
   throw new UnsupportedOperationException("This impl doesn't support add");
}

Unfortunately, with this, it's not until runtime that one might discover that, in fact, this operation is unsupported.

Ideally, this would have been caught at compile time and such an annotation (e.g. maybe @UnsupportedOperation) would nudge the IDE to say to any users of this method, "Hey, you're using an unsupported operation" in the way that using @Deprecated flags Eclipse to highlight any uses of the deprecated item.

4 Answers

(2018) While it may not be possible to detect it at compile time, there could be an alternative. i.e. The IDE (or other tools) could use the annotation to warn the user that such a method is being used.

There actually is a ticket for this: JDK-6447051

From a technical point of view, it shouldn't be much harder to implement than inspections that detect an illegal use of an @NotNull or a @Nullable accessor.

Related