2015-03-19 64 views
2
特定對象初始化的

我想使用的IntelliJ結構搜索,找到與任意的數組元素的對象數組初始化的所有出現,但我似乎無法得到它的權利:結構搜索中的IntelliJ

的我正在使用的相當簡單的搜索模板是:

new Object[] { $DONT_CARE$ } 

它沒有找到我正在尋找的事件。事實上,大多認爲完全出乎意料OCCURENCES像下面這樣:

private final static int[] SOME_VARIABLE = { 0, 10 }; 

我希望找到的是類似於以下線(有趣的一點是新的對象[] - 部分):

log.debug("Some log statement param1[{}], param2[{}], param3[{}]", new Object[] { param1, param2, param3 }); 

一個簡單的「查找路徑」與下面的「文本發現」工作得很好:

new Object[] { 

我必須錯在這裏做一些事情。有沒有人有一個想法,爲什麼我沒有得到預期的結果?

最好的問候, 本

附:作爲感興趣的讀者的一個注意事項:我這樣做是因爲我想升級項目中的slf4j - 框架,並且我想用Object-array替換以前所需的多個日誌參數的語法:

eg log.debug("Some log statement param1[{}], param2[{}], param3[{}]", new Object[] { param1, param2, param3 });

使用一個變量參數列表如下代碼:

log.debug("Some log statement param1[{}], param2[{}], param3[{}]", param1, param2, param3);

回答

1

看起來你已經打在結構搜索中的錯誤(見this bug report)。

但是對於您的特定問題,您還可以使用冗餘陣列創建檢查。該檢查報告了傳遞給變量參數方法的數組創建表達式,並且它有一個可以解決問題的快速修復方法。

另一個選項/解決方法是包含在結構搜索查詢的方法調用:

$log$.$debug$($string$, new Object[] { $expr$ }); 

$ EXPR $:最小計數:0最大計數:無限

$日誌$:表達式類型: Logger

+0

_Redundant數組創建檢測_很好地工作,正是我所期待的。您調整結構搜索查詢的建議不僅可以很好地工作,還可以教會我一些關於IntelliJ的新知識。這裏是我對同胞程序員的這個問題的建議:請記住,**還有其他設置可用於結構搜索變量**(提示:編輯變量...),可能需要根據您的需要進行調整。 – jimonthebarn 2015-03-25 15:52:02

+0

我繼續前進,並接受了我自己的建議,現在即使是最初的搜索查詢,也找到了發生的事情。公正地說:它也仍然發現不希望的事件。 :) – jimonthebarn 2015-03-25 15:53:08