PROPOSAL: Improved Support for Optional Object Behaviors at Runtime (original) (raw)

Alan Snyder javalists at cbfiddle.com
Thu Mar 26 12:20:41 PDT 2009


Sorry if I was not clear enough. The difference is that getExtension is a method, therefore it can be overridden in a subclass.

On Mar 26, 2009, at 12:12 PM, rssh at gradsoft.com.ua wrote:

EXAMPLE:

Suppose a program wants to test an object "o" at runtime for an optional behavior defined by a class or interface "T". In current Java, the program could write:

try {
    T t = (T) o;
    ... use t ...
} catch (ClassCastException ex) {
}

Using the proposed feature, the program would write:

T t = o.getExtension(T.class);
if (t != null) {
    ... use t ...
}

The following examples are all hypothetical, but plausible to varying degrees. Note that many of them use instances of existing platform

Sorry, I can't understand, how this differ from

if (o instanceof T) { T t = (T)o; .... use t ... }

?



More information about the coin-dev mailing list