我正在嘗試對某些Java代碼進行源代碼轉換,結果代碼中的每個表達式都會在計算表達式時調用方法。 (這個用例是一個簡單的行覆蓋度量,我之前在JavaScript中做過這樣的事情:<my-expression>
變成了(covered("path/to/file.js", 12), <my-expression>)
或其他東西,其中12是表達式的行號)。Java中的逗號運算符的等效形式?
Java沒有逗號運算符。我想過在方法調用中包裝表達式,例如我的covered
函數將被聲明爲public static <T> T covered(String file, int line, T expr)
並返回其第三個參數,因此我可以編寫covered("path/to/file.java", 12, myExpression())
,但它不適用於類型爲void
的表達式。
有沒有簡單的方法來完成這個?邪惡的代碼是好的;這是生成的代碼。
表達式粒度的覆蓋分析對我來說似乎有點過分。 – 2013-04-20 03:40:54
@StephenC是的,這很好,因爲我可以在一個地方完成所有任務(處理表達式的代碼)。否則,我不得不以不同的方式處理不同類型的陳述。不是一個大問題,但仍然。 – 2013-04-20 03:42:47