2016-09-23 71 views
0

這是代碼。方法test和test2中的代碼是不同的,因爲傳遞給Test構造函數的參數是不同的。實際上,如果我將任何參數更改爲null,intellij將停止報告重複。有沒有什麼辦法解決這一問題?Intellij報告代碼重複,而實際上它不是

----更新--------

我經過2個功能做完全不同的事情,但仍的IntelliJ重複報告

public class TestMain { 

    public void test(int a) 
    { 
     System.out.println("haha"); 
     System.out.println("hahaa"); 
     TestMain testMain = new TestMain(); 
     new Test(testMain::test3); 
     System.out.println("hahaaa"); 
    } 

    public void test2(int a) 
    { 
     System.out.println("haha"); 
     System.out.println("hahaa"); 
     TestMain testMain = new TestMain(); 
     new Test(testMain::still_dup); 
     System.out.println("hahaaa"); 
    } 

    public void test3(int a) { 
     System.out.println("abc"); 
    } 

    public void still_dup(int a) { 
     String b = "edf"; 
     b.toLowerCase(); 
    } 

    public class Test { 
     Test(handler h) { 

     } 
    } 

    public interface handler<M> { 
     void entitySelector(int a); 
    } 

    public static void main(String[] args) { 
     TestMain test = new TestMain(); 
     test.test(1); 
     System.out.println("-------"); 
     test.test2(2); 
    } 
} 
+0

您傳遞了兩個不同的方法引用,但兩個引用的方法完全相同。 –

+0

@JBNizet這不是重點。即使我通過一個完全不同的功能,它也報告重複。 – Cuero

回答

0

我認爲最好的方式來解決,這是用一種方法替代testtest2。您不必區分傳遞構造函數的內容,因爲它是當前的方法。這可能是報告代碼重複的原因。這些方法可以被一個單一的方法替代而沒有問題。

+0

「單一方法」是什麼意思? – Cuero

+0

我的意思是用一種方法替換兩種方法。 – mm759

+0

答案不再適用,因爲問題已更新。在test和test2中傳遞的方法引用已更改。 – mm759

相關問題