关于在java中声明和调用字段的一些问题

时间:2015-07-07 22:43:45

标签: 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 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;

感谢您的朋友们...

2 个答案:

答案 0 :(得分:0)

首先,您确定attributes具有正确的值吗?

并记得使用equals()方法作为字符串比较器

  if (localName.equals("friend"))

而不是

  if (localName == "friend")

答案 1 :(得分:0)

您无法为最终字段分配新值。删除final关键字以解决错误。

此外,您将所有字段设置为静态并使用它们作为键从属性中检索内容,但同时您要为它们分配新值 - 可能是个坏主意。尝试使用最终静态键创建一个单独的类以用于属性检索,并使用单独的Friend类将检索到的值分配给。