我正在尝试阅读 Clojure source code。
有一个IFn接口,声明如下:
public interface IFn extends Callable, Runnable{
我认为可调用是通用。 IFn如何知道这里指定的类型是什么?
Interface Callable<V>
答案 0 :(得分:4)
它不能。该声明基本上是使用原始类型,这是一个坏主意。写作会好得多:
public interface Function<V> extends Callable<V>, Runnable
那就是说 - 我没有注意到你在谈论Clojure而不是Java。鉴于他们正在建立语言之间的桥梁,他们可以在某种程度上用类型系统做他们想要的事情:)