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 将检索到的值分配给。