无法对java类中的非静态字段进行静态引用
这是我的类,错误是无法对非静态字段进行静态引用。请告诉我是什么问题,让我知道如何解决它无法对java类中的非静态字段进行静态引用,java,Java,这是我的类,错误是无法对非静态字段进行静态引用。请告诉我是什么问题,让我知道如何解决它 感谢您的建议。将构造器中的所有“学院”引用替换为“此”。 “this”关键字指的是当前对象,而使用类名“College”直接指的是类的静态访问。您向构造函数传递了错误的实例:您必须将类的实例称为“this”。 正确语法: public class College { public String collegename; public String branch; public String
感谢您的建议。将构造器中的所有“学院”引用替换为“此”。
“this”关键字指的是当前对象,而使用类名“College”直接指的是类的静态访问。您向构造函数传递了错误的实例:您必须将类的实例称为“this”。 正确语法:
public class College {
public String collegename;
public String branch;
public String username;
public String password;
public College(String college,String branch,String user, String pass)
{
College.collegename = college;
College.branch= branch;
College.username= user;
College.password= pass;
}
}
您正在声明类级变量,并像静态成员一样使用它。 试一试
此
关键字用于引用类变量
编辑:
如果你想使用评论中提到的
public class College {
public String collegename;
public String branch;
public String username;
public String password;
public college(String college,String branch,String user, String pass)
{
this.collegename = college;
this.branch= branch;
this.username= user;
this.password= pass;
}
}
在任何类中的任何位置将所有数据设置为第一位,如
public class College {
String collegename;
String branch;
String username;
String password;
private static College instance = null;
protected College() {
// Exists only to defeat instantiation.
}
public static College getInstance() {
if(instance == null) {
instance = new College();
}
return instance;
}
public void SetData(String collegeName, String branch, String userName, String password)
{
this.collegename = collegeName;
this.branch= branch;
this.username= userName;
this.password= password;
}
public String GetCollegeName()
{
return this.collegename;
}
// So on...
}
College.getInstance().SetData("abcCollege","abcBranch","username","password");
在另一个类中使用它,例如
public class College {
String collegename;
String branch;
String username;
String password;
private static College instance = null;
protected College() {
// Exists only to defeat instantiation.
}
public static College getInstance() {
if(instance == null) {
instance = new College();
}
return instance;
}
public void SetData(String collegeName, String branch, String userName, String password)
{
this.collegename = collegeName;
this.branch= branch;
this.username= userName;
this.password= password;
}
public String GetCollegeName()
{
return this.collegename;
}
// So on...
}
College.getInstance().SetData("abcCollege","abcBranch","username","password");
ArrayListdataToSend=new ArrayList();添加(新的BasicNameValuePair(“collegename”,College.getInstance().GetCollegeName());
或者干脆以大学为例
ArrayList<NameValuePair>dataToSend = new ArrayList<>(); dataToSend.add(new BasicNameValuePair("collegename", College.getInstance().GetCollegeName()));
College学院=新学院(“abcCollege”、“abcBranch”、“用户名”、“密码”)
ArrayListdataToSend=新的ArrayList();添加(新的BasicNameValuePair(“collegename”,college.collegename));
虽然我不懂Java,但应该是这样。这里没有任何静态字段。只需将
College.
更改为this.
您还需要将College
构造函数资本化。例如,公立学院(…
是的,将构造函数中的学院首字母大写,你就没事了。如果你想问何时何地使用static,你可能想编辑你的帖子。你试图将这些变量视为静态变量,而不是静态变量。如果你使用ClassName.variableName,那么它将假定变量是静态的。Hazma Hasan我正在使用那个类在另一个类中,当我使用ArrayListdataToSend=new ArrayList();dataToSend.add(new BasicNameValuePair(“collegename”,College.collegename)),从服务器发送和检索数据时,它显示了一个错误。请在College类中将collegename更改为静态。创建College实例或将其设置为singleton