2014-09-05 132 views
0
鑄造的URLConnection到HttpURLConnection的

我有一些代碼:在犀牛

var Base64 = java.util.Base64; 
var URL = java.net.URL; 
var HttpURLConnection = java.net.HttpURLConnection; 
var connectionAddress = new URL("http://twitter.com/"); 
var httpConnection = Java.to(
     connectionAddress.openConnection(), 
     Java.type("java.net.HttpURLConnection") 
    ); 

,這將引發一個例外: 類型錯誤:sun.net.www.protocol.http.HttpURLConnection:http://twitter.com/不是一個對象

任何人有任何想法如何處理?

+0

難道這java代碼或JavaScript代碼只設置?爲什麼'var'關鍵字在那裏? – cameron 2014-09-05 09:13:13

+0

這就是JavaScript。 – almendar 2014-09-05 09:26:54

回答

1

Java.to用於將JavaScript對象轉換爲Java對象。目前它支持轉換爲Java數組類型,以及java.util.Listjava.util.Deque。它不能用於在Java類型之間「投射」,無論如何,它在動態語言中不是一個有意義的概念。你openConnection()調用還給您sun.net.www.protocol.http.HttpURLConnection類型的Java對象,這聽起來像一些已經是java.net.HttpURLConnection一個子類,所以你應該都可以通過編寫

var httpConnection = connectionAddress.openConnection(); 
+0

我注意到我可以直接使用sun.net。 只有當我閱讀你的評論後,它才讓我意識到,在動態語言鑄造沒有意義:)謝謝指出。這就像在Python鴨子打字中一樣。如果方法在那裏,它將被調用。 – almendar 2014-09-05 09:28:04