2012-11-02 47 views
4

我如何在java中實現此目的。我有一個對象,它有properties從java對象中添加和刪除屬性

public class Object { 

    private final Credentials Credentials; 
    private final int PageSize; 
    private final int PageStart; 
    private final int DefaultFilterId; 

    public Object(Credentials Credentials, int PageSize, int PageStart, 
int DefaultFilterId) { 
      this.Credentials = Credentials; 
      this.PageSize = PageSize; 
      this.PageStart = PageStart; 
      this.DefaultFilterId = DefaultFilterId; 
     } 

    } 

現在我形成了這個對象這樣

Object obj = new Object(args); 

在某些時候我需要相同的對象,添加了新的properties但在移除some

我在javascript中做了這樣的事情。

var myCars=new Array(); 
myCars[0]="Saab"; 
myCars[1]="Volvo"; 
myCars[2]="BMW"; 

delete myCars[1]; or myCars.splice(1,1); 
+4

你不應該命名你的類「對象」。 – 2012-11-02 09:13:42

+0

您可能會喜歡這個:http://commons.apache.org/beanutils/api/org/apache/commons/beanutils/DynaBean.html – bobah

回答

1
public class Object { 

    private Credentials credentials; 
    private int PageSize; 
    private int PageStart; 
    private int DefaultFilterId; 

    public Object(Credentials credentials, int PageSize, int PageStart, int DefaultFilterId) { 
     this.credentials = credentials; 
     this.PageSize = PageSize; 
     this.PageStart = PageStart; 
     this.DefaultFilterId = DefaultFilterId; 
    } 

    // do that for the properties you want to be able to modify 
    public void setCredentials(Credentials newCredentials) { 
     this.credentials = newCredentials; 
    } 

} 

你使用:

object.setCredentials(yourNewCredentials) 

而且,你不應該命名對象「對象」,它是在Java中所有類的基類。

1

你不能在java中這樣做。最好的近似是使用HashTable或類似的。

Hashtable ht = new Hashtable(); 
ht.put("key", value); 
+0

請更具體一些,這不是OP問題的答案 – MaVRoSCy

1

您可以將ArrayList作爲私有屬性添加到您的類中。而不是構建允許你添加和刪除條目的訪問功能。 你無法完全像JavaScript一樣。

3

將你的對象的所有實例放入一個集合中,然後你可以從集合中刪除它。

List<YourObject> list = new ArrayList<YourObject>(); 
YourObject obj1 = new YourObject("abc"); 
list.add(obj1); 
YourObject obj2 = new YourObject("xyz"); 
list.add(obj2); 

現在這兩個對象都在列表中。以後你可以使用remove方法刪除它們。

list.remove(obj1); 

,只是一個指針,它是一個不好的做法來命名班級爲Object所有Java類extendjava.lang.Object