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);
}
}
Run Code Online (Sandbox Code Playgroud)
你不能.Java 1.6不支持使用Strings的switch语句.
Java 1.7可能会(它是Project Coin的功能之一),但对于1.6,您应该使用枚举(最佳选择)或以其他方式使用地图.
这是如何做:
创建一个界面:
interface SiteListProvider{
SitesList provide();
}
Run Code Online (Sandbox Code Playgroud)
现在创建一个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");
}
});
Run Code Online (Sandbox Code Playgroud)
现在使用它像这样:
SiteList siteList = providers.get(localName).provide();
Run Code Online (Sandbox Code Playgroud)