Sow*_*mya 3 java if-statement switch-statement
如何使用switch case而不是编写以下方法if else
public void startElement(String uri, String localName, String qName,
    Attributes attributes) throws SAXException 
{
    currentElement = true;
    if (localName.equals("maintag"))
    {
        /** Start */ 
        sitesList = new SitesList();
    } else if (localName.equals("website")) {
        /** Get attribute value */
        String attr = attributes.getValue("category");
        sitesList.setCategory(attr);
    }
}
你不能.Java 1.6不支持使用Strings的switch语句.
Java 1.7可能会(它是Project Coin的功能之一),但对于1.6,您应该使用枚举(最佳选择)或以其他方式使用地图.
这是如何做:
创建一个界面:
interface SiteListProvider{
    SitesList provide();
}
现在创建一个Map,将Strings映射到以下的不同实现SiteListProvider:
Map<String, SiteListProvider> providers =
    new HashMap<String, SiteListProvider>();
providers.put("foo", new SiteListProvider(){
    public SitesList provide(){
        return new SiteList("foo", "bar", "baz");
    }
});
providers.put("phleem", new SiteListProvider(){
    public SitesList provide(){
        return new SiteList("otherstuff");
    }
});
现在使用它像这样:
SiteList siteList = providers.get(localName).provide();