1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
|
;; Copyright (c) Frantisek Sodomka. All rights reserved. The use and
;; distribution terms for this software are covered by the Eclipse Public
;; License 1.0 (http://opensource.org/licenses/eclipse-1.0.php) which can
;; be found in the file epl-v10.html at the root of this distribution. By
;; using this software in any fashion, you are agreeing to be bound by the
;; terms of this license. You must not remove this notice, or any other,
;; from this software.
(ns clojure.contrib.test-clojure.java-interop
(:use clojure.contrib.test-is))
; http://clojure.org/java_interop
; http://clojure.org/compilation
; Member access
; . ..
; doto
(deftest test-dot
(are (= _1 _2)
(. Integer MAX_VALUE) Integer/MAX_VALUE
(. Integer MAX_VALUE) java.lang.Integer/MAX_VALUE ))
(deftest test-double-dot
(is (= (.. System (getProperties) (get "os.name"))
(. (. System (getProperties)) (get "os.name")))))
(deftest test-doto
(let [doto-map (doto (new java.util.HashMap)
(.put "a" 1)
(.put "b" 2))]
(is (= (class doto-map) java.util.HashMap))
(is (= doto-map {"a" 1 "b" 2}))))
; new
; instance?
; set!
; memfn
; bean
; proxy, proxy-super
; bases, supers
; Arrays: alength aget aset make-array to-array into-array to-array-2d aclone
; float-array, int-array, etc
; amap, areduce
; Type Hints, *warn-on-reflection*
; #^ints, #^floats, #^longs, #^doubles
; Coercions: int, long, float, double, char, boolean, short, byte
; num
; ints/longs/floats/doubles
|