Is there any way I can extend the Set
class? I have numerous places in code where if I a set has no items, I want to add all the items in another set, but if it does have items, I want to retain only the items in the other set.
This seemed like a good use case for extending the Set
class, but Apex complains about the lack of <
following the extending of the set and the declaration of a Set
argument in the following code:
public with sharing class CoreSet extends Set {
public Boolean retainAllIfPopulated(Set other) {
return this.size() > 0 ? this.retainAll(other)
: this.addAll(other);
}
}
Is it possible to extend the built-in Set
class?
Best Answer
No, it is not possible to extend a class if it is not
abstract
orvirtual
. Unlike inJava
inApex
all classes arefinal
by default. But you can use "composition (over inheritance)" and write something like this: