2013-03-20 36 views
1
public interface MyInterface { 
    public ArrayList<Double> f(ArrayList<Double>... args); 
} 

我收到警告:Type safety: Potential heap pollution via varargs parameter paramOfChildren。我可以用@SuppressWarnings("unchecked")來壓制這個警告。Java:界面中的可變參數

但是,在實現此接口的每個類中,我都會再次收到此警告。我想知道是否有一種方法可以在實現界面的所有類中一次性禁止此警告。如果不是,我們有沒有理由不這樣做?

+2

可能重複[潛在堆污染通過可變參數參數(http://stackoverflow.com/questions/12462079/potential-heap-pollution-via-varargs -parameter) – 2013-03-20 08:12:39

+1

嗯,在提問之前我已經閱讀過這個討論。它不提供解決我的問題。特別是,「@SafeVarargs」由於在接口中而不能使用。 – took 2013-03-20 08:24:41

+2

這就是你應該在問題中包含的信息。我們如何理解你已經閱讀的內容?基本上使用泛型類型的數組在Java中基本上是有問題的......你應該期望它是痛苦的。 – 2013-03-20 08:31:03

回答

0

可以拖住仿製:

class DoubleList extends ArrayList<Double> { 
    private static final long serialVersionUID = 1L; 
} 

interface MyInterface { 
    public DoubleList f(DoubleList... args); 
} 
+0

這在技術上有效,但它挫敗了使用泛型的目的。 – dimo414 2016-12-03 19:27:00