java中字段声明和调用的几个问题
我试图访问某个类中的某些字段,但在调用它们时遇到了麻烦 这是我在字段中声明的类:java中字段声明和调用的几个问题,java,android,xml-parsing,Java,Android,Xml Parsing,我试图访问某个类中的某些字段,但在调用它们时遇到了麻烦 这是我在字段中声明的类: 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 St
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);
}
这就是我想使用它们的地方:
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);
}
这些部件有错误
:
friend.username=attributes.getValue(InfoOfFriends.username)
friend.port=attributes.getValue(InfoOfFriends.port)
friend.status=InfoStatus.ONLINE
friend.status=InfoStatus.UNAPPROVED
friend.status=InfoStatus.OFFLINE
感谢您的时间朋友…首先,您确定
属性的值正确吗
记住使用equals()
方法作为字符串比较器
if (localName.equals("friend"))
而不是
if (localName == "friend")
不能将新值指定给最终字段。删除最后一个关键字以解决错误
此外,您还将所有字段设置为静态字段,并将它们用作从属性检索内容的键,但同时您希望为它们指定新值—这可能是个坏主意。尝试使用一个单独的类和最终的静态键来检索属性,并使用一个单独的Friend类来分配检索到的值。为什么if(localName==“Friend”)
?基于status.equals(“online”)
您似乎知道比较字符串的正确方法。这些都是最终字段。不能修改最终字段。如果您想给它们分配新的值,请从它们的声明中删除最后一个修饰符在friend.username=attributes.getValue(InfoOfFriends.username)中您想做什么代码>?用户名是什么类型的字段?它的修饰词是什么意思?他正在尝试这样做:friend.username=attributes.getValue(“用户名”);发布你的LogCat消息!当你说“这些零件有错误”。。。你在说什么?