Wrapper Classes for Backward compatibility in Java
Posted
by Casebash
on Stack Overflow
See other posts from Stack Overflow
or by Casebash
Published on 2010-05-11T00:44:08Z
Indexed on
2010/05/11
0:54 UTC
Read the original article
Hit count: 265
java
There is an interesting article here on maintaing backwards compatibility for Java. In the wrapper class section, I can't actually understand what the wrapper class accomplishes. In the following code from MyApp
, WrapNewClass.checkAvailable()
could be replaced by Class.forName("NewClass")
.
static {
try {
WrapNewClass.checkAvailable();
mNewClassAvailable = true;
} catch (Throwable ex) {
mNewClassAvailable = false;
}
}
Consider when NewClass
is unavailable. In the code where we use the wrapper (see below), all we have done is replace a class that doesn't exist, with one that exists, but which can't be compiled as it uses a class that doesn't exist.
public void diddle() {
if (mNewClassAvailable) {
WrapNewClass.setGlobalDiv(4);
WrapNewClass wnc = new WrapNewClass(40);
System.out.println("newer API is available - " + wnc.doStuff(10));
}else {
System.out.println("newer API not available");
}
}
Can anyone explain why this makes a difference? I assume it has something to do with how Java compiles code - which I don't know much about.
© Stack Overflow or respective owner