Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/346.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
java中字段声明和调用的几个问题_Java_Android_Xml Parsing - Fatal编程技术网

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消息!当你说“这些零件有错误”。。。你在说什么?