java 中声明和调用字段的一些问题
some problems on declaring and calling of fields in java
我正在尝试从某些 class 访问某些字段,但是当我想调用它们时遇到了麻烦。
这是我声明的 class 字段:
public class InfoOfFriends {
public static final String Friends_List = "friends_list";
public static final String userName = "username";
public static final String STATUS = "status";
public static final String PORT = "port";
public static final String Ip = "Ip";
public static final String UserKey = "userKey";
public static final String Message = "message";
}
这就是我想使用它们的地方:
public void startElement(String uri, String localName, String name, Attributes attributes) throws SAXException
{
if (localName == "friend")
{
InfoOfFriends friend = new InfoOfFriends();
friend.username = attributes.getValue(InfoOfFriends.userName);
String status = attributes.getValue(InfoOfFriends.STATUS);
friend.port = attributes.getValue(InfoOfFriends.PORT);
if (status != null && status.equals("online")) {
friend.status = InfoStatus.ONLINE;
mOnlineFriends.add(friend);
} else if (status.equals("unApproved")) {
friend.status = InfoStatus.UNAPPROVED;
mUnApprovedFriends.add(friend);
} else {
friend.status = InfoStatus.OFFLINE;
mOnlineFriends.add(friend);
}
}
else if (localName == "user")
{
this.userKey = attributes.getValue(InfoOfFriends.UserKey);
}
super.startElement(uri ,localName, name, (org.xml.sax.Attributes) attributes);
}
这些部分有errors
:
friend.username = attributes.getValue(InfoOfFriends.userName);
friend.port = attributes.getValue(InfoOfFriends.PORT);
friend.status = InfoStatus.ONLINE;
friend.status = InfoStatus.UNAPPROVED;
friend.status = InfoStatus.OFFLINE;
感谢朋友抽空...
首先,您确定 attributes
的值正确吗?
并记得将 equals()
方法
用作字符串比较器
if (localName.equals("friend"))
而不是
if (localName == "friend")
您不能为最终字段分配新值。删除 final 关键字以解决错误。
您还使所有字段成为静态字段并将它们用作键以从属性中检索内容,但同时您想为它们分配新值 - 可能是个坏主意。尝试使用最终静态键进行单独的 class 以用于属性检索,并使用单独的 Friend class 将检索到的值分配给。
我正在尝试从某些 class 访问某些字段,但是当我想调用它们时遇到了麻烦。
这是我声明的 class 字段:
public class InfoOfFriends {
public static final String Friends_List = "friends_list";
public static final String userName = "username";
public static final String STATUS = "status";
public static final String PORT = "port";
public static final String Ip = "Ip";
public static final String UserKey = "userKey";
public static final String Message = "message";
}
这就是我想使用它们的地方:
public void startElement(String uri, String localName, String name, Attributes attributes) throws SAXException
{
if (localName == "friend")
{
InfoOfFriends friend = new InfoOfFriends();
friend.username = attributes.getValue(InfoOfFriends.userName);
String status = attributes.getValue(InfoOfFriends.STATUS);
friend.port = attributes.getValue(InfoOfFriends.PORT);
if (status != null && status.equals("online")) {
friend.status = InfoStatus.ONLINE;
mOnlineFriends.add(friend);
} else if (status.equals("unApproved")) {
friend.status = InfoStatus.UNAPPROVED;
mUnApprovedFriends.add(friend);
} else {
friend.status = InfoStatus.OFFLINE;
mOnlineFriends.add(friend);
}
}
else if (localName == "user")
{
this.userKey = attributes.getValue(InfoOfFriends.UserKey);
}
super.startElement(uri ,localName, name, (org.xml.sax.Attributes) attributes);
}
这些部分有errors
:
friend.username = attributes.getValue(InfoOfFriends.userName);
friend.port = attributes.getValue(InfoOfFriends.PORT);
friend.status = InfoStatus.ONLINE;
friend.status = InfoStatus.UNAPPROVED;
friend.status = InfoStatus.OFFLINE;
感谢朋友抽空...
首先,您确定 attributes
的值正确吗?
并记得将 equals()
方法
if (localName.equals("friend"))
而不是
if (localName == "friend")
您不能为最终字段分配新值。删除 final 关键字以解决错误。
您还使所有字段成为静态字段并将它们用作键以从属性中检索内容,但同时您想为它们分配新值 - 可能是个坏主意。尝试使用最终静态键进行单独的 class 以用于属性检索,并使用单独的 Friend class 将检索到的值分配给。