未创建Java内部类新实例

未创建Java内部类新实例,java,android,inner-classes,Java,Android,Inner Classes,我有一个Java类,它将有许多内部类。这是为组织而做的,并将事情保存在一个单独的文件中 public class PUCObjects { public static class PUCNewsItem { public String title; public String summary; public String body; public String url; public String

我有一个
Java
类,它将有许多内部类。这是为组织而做的,并将事情保存在一个单独的文件中

public class PUCObjects
{

    public static class PUCNewsItem
    {

        public String title;
        public String summary;
        public String body;
        public String url;
        public String imageUrl;

    }

}
然后,我尝试创建该内部类的一个新实例(在另一个解析远程XML的类中执行此操作),但由于某些原因,它似乎没有被创建:

public static ArrayList<PUCObjects.PUCNewsItem> getPUCNews() throws IOException {

        String url = "http://api.puc.edu/news/list?key="+API_KEY+"&count=30";
        InputStream is = downloadUrl(url);
        XmlPullParserFactory pullParserFactory;

        try {
            pullParserFactory = XmlPullParserFactory.newInstance();
            XmlPullParser parser = pullParserFactory.newPullParser();
            parser.setInput(is, null);

            ArrayList<PUCObjects.PUCNewsItem> items = null;
            int eventType = parser.getEventType();
            PUCObjects.PUCNewsItem item = null;
            Log.d("Debug: ", "Start: "+url);
            while (eventType != XmlPullParser.END_DOCUMENT){
                String name = null;
                switch (eventType){
                    case XmlPullParser.START_DOCUMENT:
                        items = new ArrayList<PUCObjects.PUCNewsItem>();
                        break;
                    case XmlPullParser.START_TAG:
                        name = parser.getName();
                        //Log.d("Start Tag Name: ", parser.getName()+"  ===  "+name);
                        if (name == "item"){
                            Log.d("Debug: ", "Item");
                            item = new PUCObjects.PUCNewsItem();
                        } else if (item != null){
                            Log.d("Debug: ", "Item is not NULL 2");
                            if (name == "title"){
                                Log.d("Title: ", parser.nextText());
                                item.title = parser.nextText();
                            } else if (name == "summary"){
                                item.summary = parser.nextText();
                            } else if (name == "body_text"){
                                item.body = parser.nextText();
                            }  
                        }
                        break;
                    case XmlPullParser.END_TAG:
                        name = parser.getName();
                        if (name.equalsIgnoreCase("item") && item != null) {
                            Log.d("Debug: ", "ADD ITEM");
                            items.add(item);
                        }
                        break;
                }//end switch

                eventType = parser.next();

            }//end while

            Log.d("Debug: ", "Done");
            return items;

        } catch (XmlPullParserException e) {
            e.printStackTrace();
        } catch (IOException e) {
            // TODO Auto-generated catch block
            e.printStackTrace();
        }

        return null;

    }//end
public static ArrayList getPUCNews()引发IOException{
字符串url=”http://api.puc.edu/news/list?key=“+API_键+”&count=30”;
InputStream is=下载url(url);
XmlPullParserFactory pullParserFactory;
试一试{
pullParserFactory=XmlPullParserFactory.newInstance();
XmlPullParser=pullParserFactory.newPullParser();
setInput(is,null);
arraylistitems=null;
int eventType=parser.getEventType();
PUCObjects.PUCNewsItem=null;
Log.d(“调试:”,“启动:”+url);
while(eventType!=XmlPullParser.END_文档){
字符串名称=null;
开关(事件类型){
案例XmlPullParser.START_文档:
items=newarraylist();
打破
case XmlPullParser.START_标记:
name=parser.getName();
//Log.d(“开始标记名:”,parser.getName()+“=”+Name);
如果(名称=“项目”){
Log.d(“调试:,“项”);
item=新的PUCObjects.PUCNewsItem();
}else if(项!=null){
Log.d(“调试:,”项不为空2”);
如果(名称=“标题”){
Log.d(“Title:,parser.nextText());
item.title=parser.nextText();
}else if(名称=“摘要”){
item.summary=parser.nextText();
}else if(名称==“正文”){
item.body=parser.nextText();
}  
}
打破
case XmlPullParser.END_标记:
name=parser.getName();
if(name.equalsIgnoreCase(“项目”)和&item!=null){
Log.d(“调试:,“添加项”);
项目。添加(项目);
}
打破
}//终端开关
eventType=parser.next();
}//结束时
Log.d(“调试:,“完成”);
退货项目;
}catch(XMLPullParseRexE){
e、 printStackTrace();
}捕获(IOE异常){
//TODO自动生成的捕捉块
e、 printStackTrace();
}
返回null;
}//结束
我正在尝试创建对象,比如
item=newpucObjects.PUCNewsItem()
但它似乎总是
null


这是对象没有被创建的原因吗?

问题是字符串比较。由于
=
检查,您的
if
语句未生成
true

if (name == "item"){

比较对象/字符串时,需要使用
equals()
方法,而不是
==
。阅读此线程以了解有关比较的更多信息。由于
=
检查,您的
if
语句未生成
true

if (name == "item"){
比较对象/字符串时,需要使用
equals()
方法,而不是
==
。阅读此线程以了解有关的更多信息