【问题标题】:How to concatenate static methods from a Java class object?如何连接来自 Java 类对象的静态方法?
【发布时间】:2013-03-14 00:45:30
【问题描述】:

我正在尝试从 Vec2D 类中调用 randomVector 方法http://toxiclibs.org/docs/core/

这是我的代码:

(def particles (new ArrayList))


(defn add-particle []
  (dotimes [i 100]
    (doto particles
      ;(.add (new Vec2D (random (width)) (random (height))))
      (.add (Vec2D/randomVector))))

到目前为止一切顺利,但我需要从同一个类中调用 scale 和 add 等其他方法,我不知道如何在 Clojure 中执行此操作

这是我在 Java 中的做法:

Vec2D position = Vec2D.randomVector().scale( 60 ).add( canvasCenter );

任何帮助将不胜感激

【问题讨论】:

标签: java clojure


【解决方案1】:

试试下面的代码,java静态方法应该像(ClassName/methodName arguments)那样调用

(defn add-particle []
  (dotimes [i 100]
    (doto particles
      (.add (Vec2D/randomVector)))))

对于您的第二个问题,您需要在某个地方定义canvasCenter。

(defn add-particle []
      (dotimes [i 100]
        (doto particles
          (.add (.scale (Vec2D/randomVector) (float 60)) canvasCenter)))

【讨论】:

  • 哦,谢谢 Kugathasan 我在另一个帖子上找到了答案,有人指出我是重复的,但我编辑了这个问题,想知道你是否可以帮助我
  • @RicardoSancher:您现在可以检查答案吗?
  • 还没有,因为我收到以下错误“未找到匹配方法:类 toxi.geom.Vec2D 的比例”;)
  • @RicardoSanchez,检查一下,scale 方法接受浮点值。
  • @RicardoSanchez:使用(float 60.0)
猜你喜欢
  • 2014-11-30
  • 2021-09-28
  • 1970-01-01
  • 1970-01-01
  • 2012-12-03
  • 1970-01-01
  • 2010-10-01
  • 1970-01-01
相关资源
最近更新 更多