向Java对象添加和删除属性

4
我应该怎样在Java中实现这个?我有一个拥有“属性”(properties)的对象。
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);

在某些时候,我需要同一个对象,添加新的“属性”,但移除“某些”属性。在JavaScript中,我可以像这样做。
var myCars=new Array();
myCars[0]="Saab";
myCars[1]="Volvo";
myCars[2]="BMW";

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

4
不应该将你的类命名为Object - user647772
你可能会喜欢这个:http://commons.apache.org/beanutils/api/org/apache/commons/beanutils/DynaBean.html - bobah
4个回答

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类都从java.lang.Object继承。


1

在Java中无法这样做。最好的近似方法是使用HashTable或类似的东西。

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

请更具体一些,这不是对楼主问题的回答。 - MaVRoSCy

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)

此外,你不应该将你的对象命名为"Object",因为它是Java中所有类的基类。

1
你可以在类中添加一个私有属性ArrayList,然后构建访问函数以允许您添加和删除条目。 但是你不能像JavaScript那样完全这样做。

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接