2015-02-27 11:34 GMT+01:00 Gary Verhaegen <gary.verhae...@gmail.com>:
> It means the Clojure compiler cannot emit the efficient bytecode directly, > so it emits bytecode that calls the method reflexively. > > This only impacts performance, so if that code is not used much, it is not > a problem. > It is not used much, so it should not be a real problem. > The underlying problem is that jvm bytecode is typed, so ideally the > bytecode should be able to say "call method M of type T on object O". Here, > the Clojure Compiler cannot infer a type for html-table, so instead the > emitted bytecode is more along the lines of "ask object O to give a list of > all of its types, then look into each of these types to find if one has a > method that matches M in terms of name and number of arguments, and then > look at that method's signature and check if the arguments can be cast to > the types of the formal parameters; if there is a type with such a method, > invoke that method". > > This is not 100% technically accurate (in particular, i have no idea what > reflection does about the arguments and their types in this case), but it > should be roughly correct and you can easily see why that would be much > slower. > > If you want to remove that warning, you can annotate the html-table > variable, but the place where you must do that will depend on a little more > context than what you've given here. It is usually done at the level of var > declaration or in function argument lists. > This is the code: (let [html-table (editor-pane :content-type "text/html" :text (str html-start html-records html-end)) ] (.setCaretPosition html-table 0) So html-table is a JEditorPane. Should Clojure not be able to determine that? Just to satisfy my curiosity: how can I get rid of the warning? On Friday, 27 February 2015, Cecil Westerhof <cldwester...@gmail.com> wrote: > On a editor-pane I use: >> (.setCaretPosition html-table 0) >> >> And it does what it should do. But when I run: >> lein check >> >> I get: >> Reflection warning, quotes/core.clj:98:42 - call to method >> setCaretPosition can't be resolved (target class is unknown). >> >> Is that something to worry about? >> >> By the way, I get also some on jdbc and seesaw. >> > Strange enough I only get the warnings on my own code now. -- Cecil Westerhof -- 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 --- You received this message because you are subscribed to the Google Groups "Clojure" group. To unsubscribe from this group and stop receiving emails from it, send an email to clojure+unsubscr...@googlegroups.com. For more options, visit https://groups.google.com/d/optout.