从名称空间中排除java.lang.Process

时间:2020-08-06 18:58:48

标签: clojure

我有一个名为Process的记录。

执行以下操作

body{
background-image: url(676685.jpg);
-webkit-filter: blur(5px);
-moz-filter: blur(5px);
-o-filter: blur(5px);
-ms-filter: blur(5px);
filter: blur(5px);

导致错误(ns foo) (defrecord Process ...)

另外,当我将Process already refers to: class java.lang.Process in namespace: foo导入另一个命名空间时,也会遇到相同的错误:

Process

以下片段解决了我的问题,但感觉不干净。

(ns bar
  (:import [foo Process]))

我想在(ns foo) (ns-unmap *ns* 'Process) (defrecord Process ...) (ns bar (:import foo [.. ..])) (ns-unmap *ns* 'Process) (import [foo Process]) 语句中排除java.lang.Process,以便不需要ns或单独的ns-unmap表达式。

1 个答案:

答案 0 :(得分:0)

您可以使用gen-class创建您的课程,然后按如下所示导入它。

班级

(ns tes
  (:gen-class
    :name tes.Process
    :constructors {[] [String]}))

用法

(ns bar
  (:import [tes Process]))

(def process (Process .))
(prn :name process)