2010-12-17 19 views

Respuesta

16

Las variables globales se nombran convencionalmente con nombres que comienzan y terminan con asterisco.

(set! *warn-on-reflection* true) 

Supongo que ha copiado eso de un foro que hace ese texto en negrita.


Actualización: añadir estas líneas en su project.clj Leiningen:

;; Emit warnings on all reflection calls. 
    :global-vars {*warn-on-reflection* true} 

https://github.com/technomancy/leiningen/blob/master/sample.project.clj

+3

Cuando uso esta línea en el archivo clj obtengo el error "java.lang.IllegalStateException: No se puede cambiar/establecer el enlace de raíz de: * warn-on-reflection * con el conjunto" – Zubair

+0

_warn-on-reflection_ in project.clj ahora está en desuso ([link] (https://github.com/technomancy/leiningen/blob/master/leiningen-core/src/leiningen/core/eval.clj) - línea 335) – gadon

9

El (set! *warn-on-reflection* true) es probablemente el camino a seguir. Si desea utilizar métodos-lein específica para hacer esto, he aquí algo de información actualizada para 2.x:

Para establecer el mundial en la definición del proyecto:

(defproject foo ... 
    :global-vars {*warn-on-reflection* true} 
    ...) 

O ejecute periódicamente lein check, como lo advertirá en la reflexión.

+0

+1 por ' lein check'. '* warn-on-reflection *' no estaba dando ningún error, pero el generador de perfiles decía que el 10% del tiempo lo pasaba llamando a 'getMethods'. 'lein check' mostró que el problema eran los ayudantes aleatorios de mi biblioteca personal principal (whoops). – Carcigenicate

Cuestiones relacionadas