1
我有一個接受多個參數的方法:void doodle(Object o, Object... objects)
。區分Java方法中的多個參數和數組參數
有沒有什麼辦法可以區分objects
是真實數組還是僅僅由多個參數構建的?
在Java中不允許重載像void doodle(Object o, Object[] objects)
這樣的方法。
我有一個接受多個參數的方法:void doodle(Object o, Object... objects)
。區分Java方法中的多個參數和數組參數
有沒有什麼辦法可以區分objects
是真實數組還是僅僅由多個參數構建的?
在Java中不允許重載像void doodle(Object o, Object[] objects)
這樣的方法。
有沒有辦法區分,因爲沒有真正的區別。
Object...
無非是語法糖越多,引擎蓋下,該真正方法簽名Object[]
,這就是爲什麼你不能超載,它基本上是相同的。
爲您的特定的使用情況,您可以測試是否該方法具有可變參數,並相應地創建可視化,看看這可以幫助:
http://java.sun.com/javase/6/docs/api/java/lang/reflect/Method.html#isVarArgs%28%29
沒有,有沒有辦法。你爲什麼在乎? – 2012-08-01 10:51:12
因爲我正在開發一個可視化對象的工具。多個參數導致參數對象在同一級別上呈現。數組對象將被分組到數組中。 – 2012-08-01 10:54:11
然後你不應該使用可變參數,因爲它們只是傳遞數組的語法糖。 – 2012-08-01 10:57:23