获取另一个类的非静态属性

时间:2015-09-15 20:19:24

标签: java android

所以我有一个int属性的类,它不能是静态的

public class GetterId{

    int id = 42;

    public int getId() {
        return id;
    }

    public void setId(int id) {
        this.id = id;
    }
}

我想要访问这个" id"来自另一个类的属性,例如:

public class MainActivity
{
   int id_bis;

   id_bis = GetterID.getId();
}

但它不能这样,因为方法getId()和GetterId类的属性是非静态的......

这个问题有解决办法吗?

3 个答案:

答案 0 :(得分:1)

MainActivity 类中创建 GetterId 类的对象。使用此对象,您可以访问 GetterId 类的变量和方法。

GetterId object = new GetterId();
object.getId();
object.setId(34);
int id = object.id;

答案 1 :(得分:0)

您必须创建GetterId类型的对象,然后从该对象调用getId。

    GetterId obj = new GetterId();
    obj.getId();

这是因为您的id必须与对象关联,因为每个对象可以具有不同的ID。我想这就是为什么你有id的setter函数。因此,要让程序检索正确的id,必须引用GetterId类型的对象。

答案 2 :(得分:0)

你可以创建一个单例类并使用getInstance来获取该对象的实例

示例:

public final class GetterId {
    private static GetterId instance;

    private GetterId(){}

    public static GetterId getInstance(){
        if (instance == null) {
            synchronized (GetterId.class) {
                if (instance == null) {
                    instance = new GetterId();
                }
            }
        }
        return instance;
    }

}

然后,只要你需要引用该对象,只需调用

GetterId getter = GetterId.getInstance()
id_bis = getter.getId();

应该在任何地方给你相同的参考,你可以正常使用该对象