[英]Getting a variable from a class
所以我有一個叫做Buildings的類,它創建7個建築對象並將它們添加到building類型的ArrayList中:
package model;
import java.util.ArrayList;
/**
*
* @author dominic
*/
public class Buildings {
private ArrayList<Building> buildingList = new ArrayList<Building>();
public ArrayList<Building> getBuildingList() {
return buildingList;
}
public void setBuildingList(ArrayList<Building> buildingList) {
this.buildingList = buildingList;
}
public Buildings(){
Building building1 = new Building("Kingston University","Penrhyn Road","KT1 2EE");
buildingList.add(building1);
Building building2 = new Building("Guild of Students","Penrhyn Road","KT1 2EE");
buildingList.add(building2);
Building building3 = new Building("Kingston University Health Centre","Penrhyn Road","KT1 2EE");
buildingList.add(building3);
Building building4 = new Building("Knights Park Centre","Grange Road","KT1 2QJ");
buildingList.add(building4);
Building building5 = new Building("Roehampton Vale","Friars Avenue","SW15 5DW");
buildingList.add(building5);
Building building6 = new Building("Kingston Law School","Kingston Hill","KT2 7LB");
buildingList.add(building6);
Building building7 = new Building("Kingston Business School","Kingston Hill","KT2 7LB");
buildingList.add(building7);
}
}
建築類在內部看起來像這樣:
package model;
/*
* To change this license header, choose License Headers in Project Properties.
* To change this template file, choose Tools | Templates
* and open the template in the editor.
*/
/**
*
* @author dominic
*/
public class Building {
private String buildingName;
private String streetName;
private String postcode;
public Building(String buildingName, String streetName, String postcode){
this.buildingName = buildingName;
this.streetName = streetName;
this.postcode = postcode;
}
public String getBuildingName() {
return buildingName;
}
public void setBuildingName(String buildingName) {
this.buildingName = buildingName;
}
public String getStreetName() {
return streetName;
}
public void setStreetName(String streetName) {
this.streetName = streetName;
}
public String getPostcode() {
return postcode;
}
public void setPostcode(String postcode) {
this.postcode = postcode;
}
}
在項目的其他地方(在servlet中),我有一個for循環,它創建對象構建並循環遍歷每個對象,並將它們與用戶輸入進行比較。 我已進行測試,以確保該程序確實正在獲得用戶輸入。 但是,字符串streetName和postCode仍然為空。 謝謝。
HttpSession session = request.getSession();
Integer id = (Integer)session.getAttribute("id");
Buildings buildings = new Buildings();
String streetName = "";
String postCode = "";
String postCodeInput = request.getParameter("postCodeInput");
for(int i = 0; i > 6; i++)
{
if (postCodeInput == buildings.getBuildingList().get(i).getPostcode())
{
streetName = buildings.getBuildingList().get(i).getStreetName();
postCode = buildings.getBuildingList().get(i).getPostcode();
}
}
request.setAttribute("streetName", streetName);
request.setAttribute("postCode", postCode);
request.setAttribute("postCodeInput", postCodeInput);
request.getRequestDispatcher("StreetNameView.jsp").forward(request, response);
for(int i = 0; i > 6; i++)
那應該是<
。
for(int i = 0; i < 6; i++)
更好的是,直接遍歷列表項,而不是按索引進行遍歷。
for (Building building: buildings.getBuildingList())
{
if (postCodeInput == building.getPostcode())
{
streetName = building.getStreetName();
postCode = building.getPostcode();
break;
}
}
您甚至可以使用Java 8流進行匹配。
Building building = buildings.getBuildingList().stream()
.filter(b -> b.getPostcode() == postCodeInput)
.findAny()
.orElseThrow(NoSuchElementException::new);
request.setAttribute("streetName", building.getStreetName());
request.setAttribute("postCode", building.getPostcode());
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.