从另一个类

时间:2015-12-13 16:17:29

标签: android

我的应用程序中有不同的软件包。

enter image description here

CansTypeObject类看起来像这样

public class CansTypeObject {
    String productId;
    String productName;
    String productPrice;
    String productReturnPrice;
    String productImage;
}

现在,我想从MainActivity

访问这些字符串
CansTypeObject object = new CansTypeObject();

但我不能。如果我将CansTypeObject类移动到与MainActivity相同的包中,我可以访问它们。解决方案是什么?

3 个答案:

答案 0 :(得分:3)

默认范围是package-private。在String声明

上使用public修饰符
public String productId;

答案 1 :(得分:2)

此行为的唯一原因是您将类字符串声明为受包保护的字符串。在Java中,这意味着只有同一个包中的类才能访问这些字段。

您的问题有多种解决方案。 第一个(也是最差的) - 将您的字段声明为 public 字符串,如下所示:

public String myField;

第二个 - 为您的字段创建getter并将字符串声明为私有字段,如下所示:

private String myField;

public String getMyField() {
    return myField;
} 

然后,在类对象上使用此getter。

希望,这有帮助。

答案 2 :(得分:0)

您可以按照以下方式为getter-setter类定义CansTypeObject方法,以便轻松访问它们:

public class CansTypeObject {
    String productId;
    String productName;
    String productPrice;
    String productReturnPrice;
    String productImage;

    public String getProductId() {
        return productId;
    }

    public void setProductId(String productId) {
        this.productId = productId;
    }

    public String getProductName() {
        return productName;
    }

    public void setProductName(String productName) {
        this.productName = productName;
    }

    public String getProductPrice() {
        return productPrice;
    }

    public void setProductPrice(String productPrice) {
        this.productPrice = productPrice;
    }

    public String getProductReturnPrice() {
        return productReturnPrice;
    }

    public void setProductReturnPrice(String productReturnPrice) {
        this.productReturnPrice = productReturnPrice;
    }

    public String getProductImage() {
        return productImage;
    }

    public void setProductImage(String productImage) {
        this.productImage = productImage;
    }
}

用于创建getter-setter方法,您可以使用

的快捷键

MAC - command + N

Windows - Alt + Insert

另一种方法是打开你必须制作getter setter的类,然后right click and from the context menu select Generate option