I also ran into this recently - doing the exact same thing (a log4j
appender). I was a bit surprised and I wonder if Clojure is
effectively generating abstract classes rather than concrete classes?
(Do we have no way to specify the difference? Is that only an artifact
of the Java compiler, not the JVM bytecode?)

As you say, the fix tends to be easy (read the class API docs and
implement the missing methods) but the behavior needs to be clearly
documented (on clojure.org) to help people avoid the problem I
think...

Sean

On Sun, May 29, 2011 at 7:04 AM, ckirkendall <ckirkend...@gmail.com> wrote:
> I ran into this when creating a log4j appender in Clojure.  I extended
> the AppenderSkeleton, an abstract class. This abstract class
> implements Appender.  Appender defines two methods that don't appear
> in the AbstractSkeleton (requiresLayout & close).  I was able to
> compile the Clojure class, without the two methods in question, with
> no error.  I then threw a runtime exception when I tried to use the
> class.  The fix was easy but it seems this should probably be checked
> at compile time.

-- 
You received this message because you are subscribed to the Google
Groups "Clojure" group.
To post to this group, send email to clojure@googlegroups.com
Note that posts from new members are moderated - please be patient with your 
first post.
To unsubscribe from this group, send email to
clojure+unsubscr...@googlegroups.com
For more options, visit this group at
http://groups.google.com/group/clojure?hl=en

Reply via email to