2011-05-18 138 views
2

載體在Java中的下列有效:創建對象的Java中

public Vector <Object> objVector = new Vector <Object>(50); 

我知道默認的值存儲爲對象,但我想知道如何按類型來約束內容.. 。

感謝

+0

如果通過「有效」您的意思是「它編譯」,那麼爲什麼不試試呢? – Jesper 2011-05-18 10:13:24

回答

2

我想你在找什麼是generics

public Vector<String> objVector = new Vector<String>(50); 
5

這是古代的代碼。

使用泛型,並使用現代集合類型(don't use Vector),那麼你得到的編譯時自動檢查:

List<String> list = new ArrayList<String>() 
list.add(new Foo()); // compile-time failure 
list.add("SomeString"); // ok 
+1

+1爲不使用矢量 – Heisenbug 2011-05-18 09:44:02

+0

它適用於考試。我從來不會使用矢量,但不幸的是我正在測試它們。 – user559142 2011-05-18 10:05:29

+1

Jeez,那些教授什麼時候會獲得新材料?矢量已經過時很多很多年了! – 2011-05-18 10:15:19

1
I would like to know how to restrain the contents by type... 

在實例向量只需指定類型:

public Vector <concreteType> objVector = new Vector <concreteType>(50); 

使用泛型可以指定基於層次結構的類型r限制:

class yourClass<TYPE extends SomeType>{ 

    public yourClass(){ 
      public Vector <TYPE> objVector = new Vector <TYPE>(50); 
    } 
} 

在最後一個示例中,TYPE可以是擴展SomeType(包含SomeType)的任何類型。 您可以使用關鍵字implements將TYPE的類型限制爲接口而不是類。

0

通過「有效」,它的語法是罰款:

public Vector <Object> objVector = new Vector <Object>(50); 

在NetBeans平臺8:0:2,我使用,它會顯示一個過時的收藏,它是好得多使用ArrayList,雖然Vector有優勢,但它可以存儲幾乎任何東西。

聲明:

Vector v = new Vector(); 

它構造一個空向量,這種類型的載體可以「添加」整數,布爾值,一個ArrayList的和其他的基本數據類型和引用。