我为具有值(“全职”、“兼职”)的供应商列表的下拉框编写了查询,即,我想为供应商契约(Contract)选择列表添加下拉框,其中有 2 个值,全职
和兼职
。
这是我的代码:
<td><b>Vendor Contract<font color="red">*</font></b></td>
<td>
<select id="Vendor Contract" name="Vendor Contract" style="width: 155" >
<option selected value="">-select-</option>
<%
Iterator<String> viterator = VendorList.iterator();
while(viterator.hasNext()){
String selected = "";
String Vendor = viterator.next();
if(Vendor.equalsIgnoreCase(VendorList))
selected = "Selected";
%>
<option <%=selected%> value="<%=Vendor%>"><%=Vendor%></option>
<%}%>
</select>
</td>
我收到如图所示的错误:
The method equalsignorecase string in the type string isn't applicable for the arguments(array list(string))
如何解决这个错误?
最佳答案
您将 ArrayList
传递给 equalsIgnoreCase
方法,它采用 String
类型。所以你不能将 String
与 Strings
列表进行比较。
根据您的代码,我认为您需要从列表中确定所选元素,而您的代码无法做到这一点,因为您一直在比较相同的值。
你需要做的是让另一个因素依赖,比如创建一个包含供应商值的类和另一个值,如果它被选中的话:
class VendorItem {
private String value;
private boolean selected;
// setters and getters.
}
然后在你的代码中应该看起来像
Iterator<VendorItem> viterator = vendorItems.iterator();
while(viterator.hasNext()) {
String selected = "";
VendorItem vendor = viterator.next();
if(vendor.isSelected()) {
selected = "Selected";
}
关于java - 错误显示 equalsIgnoreCase,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32604738/