我的应用程序中有不同的软件包。
CansTypeObject类看起来像这样
public class CansTypeObject {
String productId;
String productName;
String productPrice;
String productReturnPrice;
String productImage;
}
现在,我想从MainActivity
访问这些字符串CansTypeObject object = new CansTypeObject();
但我不能。如果我将CansTypeObject类移动到与MainActivity相同的包中,我可以访问它们。解决方案是什么?
答案 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