提问人:Cindy_ l 提问时间:5/12/2023 更新时间:5/12/2023 访问量:42
读取文件时未返回正确的值。返回“null”
not returning the correct values while reading a file. "null" is returned instead
问:
我正在读取 csv 文件,我有两个对象。第一个对象称为 Project,另一个对象称为 Location。
public class Project
{
private String province;
private String beneficiary;
private String beneficiaryNum;
private String assetClass;
private String name;
private String stage;
Location location;
public Project(String pProvince, String pBeneficiary, String pBeneficiaryNum, String pAssetClass, String pName, String pStage, Location pLocation)
{
province = pProvince;
beneficiary = pBeneficiary;
beneficiaryNum = pBeneficiaryNum;
assetClass = pAssetClass;
name = pName;
stage = pStage;
}
public String toString()
{
return province + "\n" + beneficiary + "\n" + beneficiaryNum + "\n" + assetClass + "\n" + name + "\n" + stage + "\n" + location;
}
...
public class Location
{
private double latitude;
private double longitude;
private String coordinateSystem;
public Location(double pLatitude, double pLongitude, String pCoordinateSystem)
{
latitude = pLatitude;
longitude = pLongitude;
coordinateSystem = pCoordinateSystem;
}
public String toString()
{
return latitude + "\n" + longitude + "\n" + coordinateSystem;
}
...
问题出在方法 processLine() 中
public static Project processLine(String pLine)
{
String[] lineSplit;
lineSplit = pLine.split(",");
//Converts the string in lineSplit[7] into a Double called 'lat'
Double lat = Double.valueOf(lineSplit[7]);
//Converts the string in lineSplit[8] into a Double calle 'lon'
Double lon = Double.valueOf(lineSplit[8]);
//Creates a new location object
Location pLocation = new Location(lat, lon, lineSplit[9]);
Project pProject = new Project(lineSplit[0],lineSplit[1],lineSplit[2],lineSplit[3],lineSplit[4],lineSplit[6],pLocation);
return pProject;
}
当我返回pProject并尝试打印它时,它会打印出来
//below is lineSplit[0,1,2,3,4,6]
Saskatchewan
All Nations Healing Hospital
9999
Health
Design and construction of a new community health facility.
Completed
//below is pLocation
null
我试图隔离pLocation并打印它,它返回
//pLocation
50.761877 //lat
-103.787043 //lon
GCS_North_American_1983_CSRS //lineSplit[9]
但是当我尝试打印出pProject时,将pLocation作为字段,它打印出null
如何让它打印出带有 pLocation 的 pProject?
我是提问的新手,所以如果我以错误的方式陈述了任何事情,或者没有提供足够的信息,请告诉我,这样我就可以提供信息并改进:)
答:
3赞
Hulk
5/12/2023
#1
构造函数缺少参数 的赋值。Project
pLocation
public Project(String pProvince, String pBeneficiary, String pBeneficiaryNum, String pAssetClass, String pName, String pStage, Location pLocation)
{
province = pProvince;
beneficiary = pBeneficiary;
beneficiaryNum = pBeneficiaryNum;
assetClass = pAssetClass;
name = pName;
stage = pStage;
location = pLocation; // was missing
}
评论
0赞
Cindy_ l
5/12/2023
非常感谢,我试图找到问题几个小时:(
评论
pLocation
Project
Location
Project
Location
Project
this.location = pLocation;
Project