PROPOSAL: Improved Support for Optional Object Behaviors at Runtime (original) (raw)
Mark Thornton mthornton at optrak.co.uk
Thu Mar 26 12:25:27 PDT 2009
- Previous message: PROPOSAL: Improved Support for Optional Object Behaviors at Runtime
- Next message: PROPOSAL: Improved Support for Optional Object Behaviors at Runtime
- Messages sorted by: [ date ] [ thread ] [ subject ] [ author ]
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 ... } ? The getExtension method need not return its own object but could delegate to another object. This functionality is essentially the same as that provided by objects implementing the java.sql.Wrapper interface.
Mark Thornton
- Previous message: PROPOSAL: Improved Support for Optional Object Behaviors at Runtime
- Next message: PROPOSAL: Improved Support for Optional Object Behaviors at Runtime
- Messages sorted by: [ date ] [ thread ] [ subject ] [ author ]