Java EE if/else语句不工作
我这里有一个函数,用于组装对eBay的API调用。它过去只与一个EbayKeys.appid一起工作,现在需要包含第二个EbayKeys.appid 参数字符串appidGet是从另一个使用request.getParameter(“token”)的函数传递的;我已经将该值输出到catalina.out中并传递了该值,但是if/else语句不会执行,也不会将值附加到字符串中 我尝试过几种不同的价值观,但都不管用。我对Java完全陌生,不知道我在这里做错了什么Java EE if/else语句不工作,java,jakarta-ee,Java,Jakarta Ee,我这里有一个函数,用于组装对eBay的API调用。它过去只与一个EbayKeys.appid一起工作,现在需要包含第二个EbayKeys.appid 参数字符串appidGet是从另一个使用request.getParameter(“token”)的函数传递的;我已经将该值输出到catalina.out中并传递了该值,但是if/else语句不会执行,也不会将值附加到字符串中 我尝试过几种不同的价值观,但都不管用。我对Java完全陌生,不知道我在这里做错了什么 public String getS
public String getSearchUrl(String qurl, List<String> excludes, String appidGet) throws UnsupportedEncodingException {
String query = buildQuery(qurl, excludes);
String safequery;
try {
safequery = URLEncoder.encode(getQuery(),charset);
StringBuffer apicall = new StringBuffer();
apicall.append(EbayKeys.endpoint).append("?").append("OPERATION-NAME=findItemsByKeywords")
.append("&SERVICE-VERSION=").append(EbayKeys.version);
//Does not execute
if (appidGet == "one" ) {
apicall.append("&SECURITY-APPNAME=").append(EbayKeys.appid1);
}
else if (appidGet == "two" ) {
apicall.append("&SECURITY-APPNAME=").append(EbayKeys.appid2);
}
System.out.println(getClass().getName() + " "
+ Utils.getTime()
+ " APP ID = " + appidGet);
apicall.append("&GLOBAL-ID=").append(EbayKeys.globalid)
.append("&keywords=").append(safequery)
.append("&sortOrder=StartTimeNewest&paginationInput.entriesPerPage=2")
.append(query);
return apicall.toString();
} catch (UnsupportedEncodingException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
return "";
}
public String getSearchUrl(String-qurl,List-excludes,String-appidGet)抛出UnsupportedEncodingException{
字符串查询=构建查询(qurl,排除);
字符串安全查询;
试一试{
safequery=URLEncoder.encode(getQuery(),字符集);
StringBuffer apicall=新的StringBuffer();
apicall.append(EbayKeys.endpoint).append(“?”).append(“OPERATION-NAME=findItemsByWords”)
.append(“&SERVICE-VERSION=”).append(EbayKeys.VERSION);
//不执行
如果(appidGet==“一”){
apicall.append(“&SECURITY-APPNAME=”).append(EbayKeys.appid1);
}
else if(appidGet==“两个”){
apicall.append(“&SECURITY-APPNAME=”).append(EbayKeys.appid2);
}
System.out.println(getClass().getName()+“”
+Utils.getTime()
+“应用程序ID=“+appidGet”);
apicall.append(“&GLOBAL-ID=”).append(EbayKeys.globalid)
.append(“&keywords=”).append(安全查询)
.append(“&sortOrder=StartTimeNewest&paginationInput.entriesPerPage=2”)
.追加(查询);
返回apicall.toString();
}捕获(不支持的编码异常e){
//TODO自动生成的捕捉块
e、 printStackTrace();
}
返回“”;
}
感谢您提前提供的帮助。您应该使用
appidGet.equals("one")
及
你应该使用
appidGet.equals("one")
及
典型的错误。比较字符串时,请使用
.equals()
:
对于非原语,
=
测试两个对象是否是相同的对象(相同的内存地址),而.equals()
测试它们是否“看起来相同”(特定于类的实现)经典错误。比较字符串时,请使用.equals()
:
对于非原语,
==
测试两个对象是否是相同的对象(相同的内存地址),而.equals()
测试它们是否“看起来相同”(特定于类的实现)将字符串与.equals()
Java中的=
通过对象引用进行比较,因为字符串在Java中是对象
请尝试将字符串与
.equals()进行比较
Java中的=
通过对象引用进行比较,因为字符串在Java中是对象
尝试一下appidGet.equals(“一”)
典型的java错误
在java中,“==”比较对象的引用,因此,使用equals代替==。典型的java错误
在java中,“==”比较对象的引用,因此,使用等于而不是==
if (appidGet.equals("one") ) {
apicall.append("&SECURITY-APPNAME=").append(EbayKeys.appid1);
}
else if (appidGet.equals("two") ) {
apicall.append("&SECURITY-APPNAME=").append(EbayKeys.appid2);
}