1

我正在尝试使用我找到的一些资源编写一个播放声音文件的函数。代码如下:

(定义播放 [文件]
  (让 [songp (URL. (.getCodeBase) 文件)
    歌曲 (.newAudioClip songp)]
    (。歌曲播放)))

问题是, (.getCodeBase) 是格式错误的成员表达式。我不知道该怎么办。你如何调用这样的方法?在我查看的 Java 代码中,它的调用方式如下:

getCodeBase()

我错过了什么吗?

4

1 回答 1

4

.getCodeBase是一个实例方法调用,因此需要一个接收器(在 Java 中的点之前)。如果您的 Java 代码只是getCodeBase(),那么有两种可能性:或者它实际上意味着this.getCodeBase(),在这种情况下,您应该弄清楚this该方法中的内容,并将其指定为第一个参数:

(.getCodeBase obj)

或者,它可能是该类(或其基类之一)的静态方法,在这种情况下,您应该改用静态方法调用表达式:

(ClassName/getCodeBase)

发布您尝试翻译的 Java 代码,并附上足够的上下文,可能有助于更详细地回答这个问题。

于 2009-07-27T20:52:40.927 回答