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 -~----------~----~----~----~------~----~------~--~---

