The JLS requires that, even if a JVM identifies a binding error "early", the
exception raised must be deferred until an attempt is made to "use" the
class. I'm paraphrasing here, but it's been years since I last read the JLS.
That's the basic idea anyway.
Of course, the interface can only depend on classes that are available in
both environments (which is the mistake made by the poster you linked to).

When I say "should work" I mean "should work for you". I know this approach
works because I use it my Moseycode library. I have a Perspector interface
that I back with one of: a JAI PerspectiveTransform instance, a wrapper
around android.graphics.Matrix, or my own implementation if neither is
available.

Tom.

2009/4/15 blindfold <[email protected]>

>
> Thanks Tom and Pieter. I haven't tried your suggestions yet, but is
> there any guarantee that the phone's VM will not also verify
> "isolated" classes or methods? By analogy to
>
> http://supportforums.blackberry.com/rim/board/message?board.id=java_dev&message.id=17826
> (with two Blackberry OS versions, for which the factory method did not
> seem to work either) I want to avoid doing two compilations (with two
> SDK's, which would create a future maintenance headache).
>
> Regards
>
> On Apr 15, 8:54 am, Tom Gibara <[email protected]> wrote:
> > A more straightforward approach that should work is to isolate the
> affected
> > code behind an interface, with separate implementations for 1.1 and 1.5.
> A
> > factory method can be used to opaquely return the correct instance based
> on
> > the build's sdk version. This has the advantage that you can usually hold
> > onto a reference to the appropriate implementation and avoid repeatedly
> > checking the version number.
> > It does add the cost of a interface method call, but that's perfectly
> > acceptable in most instances - if not, it's usually because the work is
> > being done in an inner loop, in that case you generally need to replicate
> > the loop for both implementations.
> >
> > Tom.
> >
> > 2009/4/15 Pieter <[email protected]>
> >
> >
> >
> > > If the amount of "1.5" code is small, you can use reflection to make
> > > the calls in order to fool the verifier. This quickly becomes a pain
> > > in the butt when you have to call more than a few 1.5 methods or work
> > > with multiple 1.5 objects though.
> >
>

--~--~---------~--~----~------------~-------~--~----~
You received this message because you are subscribed to the Google
Groups "Android Developers" group.
To post to this group, send email to [email protected]
To unsubscribe from this group, send email to
[email protected]
For more options, visit this group at
http://groups.google.com/group/android-developers?hl=en
-~----------~----~----~----~------~----~------~--~---

Reply via email to