急!!调用构造器时候 参数无法进入函数的问题

Catwithpizza 2017-02-18 05:22:15
这个方法 else 里面里面调用构造器的 在调用前 对数组 进行测试,数组是有值并且可以输出值的。从这里开始ao=new AuditOpinion(data); 遇到我现在困扰的问题

public List<AuditOpinion> resolverXLS(HSSFSheet hssfSheet){
//获取一个表格中的总行数 第一行得到的值是0 所以这里要+1
int allRow = hssfSheet.getLastRowNum()+1;
//获取一个表格中的所有列数 由于一些行 是合并单元格的,所以可能出现只有一行的情况
// 还有可能一行是空的,所以取所有行数里面最大的行数
int allCell = 0;

List<AuditOpinion> aduitList=new ArrayList<AuditOpinion>();
AuditOpinion ao=null;
for(int i=0;i<allRow;i++){

if(hssfSheet.getRow(i)!=null&&hssfSheet.getRow(i).getLastCellNum()>allCell){
allCell = hssfSheet.getRow(i).getLastCellNum()+1;
}
}
System.out.println("行数:"+allRow+",列数:"+allCell);
//定义一个与 表格里面行数和列数 一样的字符串数组 用于储存解析好的数据
String[] data = new String[allCell];

//循环行
for(int n=3;n<allRow;n++){
//获取一行中的所有的数据 如果这一行是空 就不在执行里面的代码。
HSSFRow hssfRow = hssfSheet.getRow(n);
//不报错/*System.out.println(hssfSheet.getRow(0).getCell(1));*/
//报错/* System.out.println(hssfSheet.getRow(1).getCell(1));*/
if(hssfRow==null){
continue;
}
//循环这一行中的数据 如果这一行中的某一列是空的 就用“ ”代替
for(int m=3;m<allCell;m++){
if(hssfRow.getCell(m)==null){
ao=new AuditOpinion();

}

else {
//把表格中的数据存放到数组中
data[m]=hssfRow.getCell(m).toString();

System.out.println(data[m]+"!!!!"+data.length);
ao=new AuditOpinion(data);
}
}
aduitList.add(ao);
}
return aduitList;
}
...全文
188 6 打赏 收藏 转发到动态 举报
写回复
用AI写文章
6 条回复
切换为时间正序
请发表友善的回复…
发表回复
Catwithpizza 2017-02-24
  • 打赏
  • 举报
回复
解决了 ,基础问题错误了, 在循环里 new了 新的对象 每次循环都 new了一次, 传过去的数组 并不为空 数组里只有一个数
烟花散尽13141 2017-02-22
  • 打赏
  • 举报
回复
教你反射调用 http://download.csdn.net/detail/u013132051/9753330
qq_34176300 2017-02-22
  • 打赏
  • 举报
回复
double.valueof这里,估计是数组里面的这个值是null
Catwithpizza 2017-02-18
  • 打赏
  • 举报
回复
引用 2 楼 qq_36173526 的回复:
行数:95,列数:26
990006-201511-00000001!!!!26
26changnull
null1111
Exception in thread "main" java.lang.NullPointerException
	at sun.misc.FloatingDecimal.readJavaFormatString(Unknown Source)
	at java.lang.Double.valueOf(Unknown Source)
	at com.medto.entity.AuditOpinion.<init>(AuditOpinion.java:283)
	at com.medto.util.FileOperation.resolverXLS(FileOperation.java:109)
	at com.medto.util.FileOperation.readFile(FileOperation.java:44)
	at com.medto.util.FileOperationTest.main(FileOperationTest.java:16)
这个是报错,错误是这样的 在调用这个构造函数前,二维数组不为空的,但是调用后后,数组为空的 null
Catwithpizza 2017-02-18
  • 打赏
  • 举报
回复
行数:95,列数:26
990006-201511-00000001!!!!26
26changnull
null1111
Exception in thread "main" java.lang.NullPointerException
	at sun.misc.FloatingDecimal.readJavaFormatString(Unknown Source)
	at java.lang.Double.valueOf(Unknown Source)
	at com.medto.entity.AuditOpinion.<init>(AuditOpinion.java:283)
	at com.medto.util.FileOperation.resolverXLS(FileOperation.java:109)
	at com.medto.util.FileOperation.readFile(FileOperation.java:44)
	at com.medto.util.FileOperationTest.main(FileOperationTest.java:16)
Catwithpizza 2017-02-18
  • 打赏
  • 举报
回复
这个是类 里面有我 重载的构造方法; 上面那个参数为数组的调用方法 进入里面是一个空的数组
package com.medto.entity;

import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.util.Date;

/*意见审核书  createby ywy 2017/2/18*/

public class AuditOpinion {
	//id
	private int OPINION_ID;
	//流水号
	private String  BUSINESS_NUM;
	//单据号
	private long DOCUMENT_NUM;
	//意见书编码
	private String OPINION_ENCODING;
	//项目编码
	private String PROJECT_ENCODING;
	//项目名称
	private String PROJECT_NAME;
	//医保内金额
	private Double MEDICAL_INFOSUM;
	//扣除金额
	private Double CROSS_CLAIM;
	//规则名称
	private String RULE_NAME;
	//扣除原因
	private String DEDUCT_REASON;
	//还款原因
	private String REPAY_REASON;
	//医生姓名
	private String DOCTOR_NAME;
	//科室编码
	private String ROOM_ENCODING;
	//科室名称
	private String ROOM_NAME;
	//入院日期
	private Date IN_DATE;
	//住院
	private Date OUT_DATE;
	//费用日期
	private String FEES_DATE;
	//数量
	private int NUMBERS;
	//住院号
	private long HOSPITAL_NUM;
	//就医方式
	private String TREATMENT_WAY;
	//结算日期
	private Date SETTLE_DATE;
	//个人编号
	private long PATIENT_ID;
	//参保人姓名
	private String PATIENT_NAME;
	//版本号
	private int VERSION;
	//反馈
	private String FEEDBACK;
	
	
	
	
	@Override
	public String toString() {
		return "AuditOpinion [OPINION_ID=" + OPINION_ID + ", BUSINESS_NUM="
				+ BUSINESS_NUM + ", DOCUMENT_NUM=" + DOCUMENT_NUM
				+ ", OPINION_ENCODING=" + OPINION_ENCODING
				+ ", PROJECT_ENCODING=" + PROJECT_ENCODING + ", PROJECT_NAME="
				+ PROJECT_NAME + ", MEDICAL_INFOSUM=" + MEDICAL_INFOSUM
				+ ", CROSS_CLAIM=" + CROSS_CLAIM + ", RULE_NAME=" + RULE_NAME
				+ ", DEDUCT_REASON=" + DEDUCT_REASON + ", REPAY_REASON="
				+ REPAY_REASON + ", DOCTOR_NAME=" + DOCTOR_NAME
				+ ", ROOM_ENCODING=" + ROOM_ENCODING + ", ROOM_NAME="
				+ ROOM_NAME + ", IN_DATE=" + IN_DATE + ", OUT_DATE=" + OUT_DATE
				+ ", FEES_DATE=" + FEES_DATE + ", NUMBERS=" + NUMBERS
				+ ", HOSPITAL_NUM=" + HOSPITAL_NUM + ", TREATMENT_WAY="
				+ TREATMENT_WAY + ", SETTLE_DATE=" + SETTLE_DATE
				+ ", PATIENT_ID=" + PATIENT_ID + ", PATIENT_NAME="
				+ PATIENT_NAME + ", VERSION=" + VERSION + ", FEEDBACK="
				+ FEEDBACK + "]";
	}
	public int getOPINION_ID() {
		return OPINION_ID;
	}
	public void setOPINION_ID(int oPINION_ID) {
		OPINION_ID = oPINION_ID;
	}
	public String getBUSINESS_NUM() {
		return BUSINESS_NUM;
	}
	public void setBUSINESS_NUM(String bUSINESS_NUM) {
		BUSINESS_NUM = bUSINESS_NUM;
	}
	public long getDOCUMENT_NUM() {
		return DOCUMENT_NUM;
	}
	public void setDOCUMENT_NUM(long dOCUMENT_NUM) {
		DOCUMENT_NUM = dOCUMENT_NUM;
	}
	public String getOPINION_ENCODING() {
		return OPINION_ENCODING;
	}
	public void setOPINION_ENCODING(String oPINION_ENCODING) {
		OPINION_ENCODING = oPINION_ENCODING;
	}
	public String getPROJECT_ENCODING() {
		return PROJECT_ENCODING;
	}
	public void setPROJECT_ENCODING(String pROJECT_ENCODING) {
		PROJECT_ENCODING = pROJECT_ENCODING;
	}
	public String getPROJECT_NAME() {
		return PROJECT_NAME;
	}
	public void setPROJECT_NAME(String pROJECT_NAME) {
		PROJECT_NAME = pROJECT_NAME;
	}
	public Double getMEDICAL_INFOSUM() {
		return MEDICAL_INFOSUM;
	}
	public void setMEDICAL_INFOSUM(Double mEDICAL_INFOSUM) {
		MEDICAL_INFOSUM = mEDICAL_INFOSUM;
	}
	public Double getCROSS_CLAIM() {
		return CROSS_CLAIM;
	}
	public void setCROSS_CLAIM(Double cROSS_CLAIM) {
		CROSS_CLAIM = cROSS_CLAIM;
	}
	public String getRULE_NAME() {
		return RULE_NAME;
	}
	public void setRULE_NAME(String rULE_NAME) {
		RULE_NAME = rULE_NAME;
	}
	public String getDEDUCT_REASON() {
		return DEDUCT_REASON;
	}
	public void setDEDUCT_REASON(String dEDUCT_REASON) {
		DEDUCT_REASON = dEDUCT_REASON;
	}
	public String getREPAY_REASON() {
		return REPAY_REASON;
	}
	public void setREPAY_REASON(String rEPAY_REASON) {
		REPAY_REASON = rEPAY_REASON;
	}
	public String getDOCTOR_NAME() {
		return DOCTOR_NAME;
	}
	public void setDOCTOR_NAME(String dOCTOR_NAME) {
		DOCTOR_NAME = dOCTOR_NAME;
	}
	public String getROOM_ENCODING() {
		return ROOM_ENCODING;
	}
	public void setROOM_ENCODING(String rOOM_ENCODING) {
		ROOM_ENCODING = rOOM_ENCODING;
	}
	public String getROOM_NAME() {
		return ROOM_NAME;
	}
	public void setROOM_NAME(String rOOM_NAME) {
		ROOM_NAME = rOOM_NAME;
	}
	public Date getIN_DATE() {
		return IN_DATE;
	}
	public void setIN_DATE(Date iN_DATE) {
		IN_DATE = iN_DATE;
	}
	public Date getOUT_DATE() {
		return OUT_DATE;
	}
	public void setOUT_DATE(Date oUT_DATE) {
		OUT_DATE = oUT_DATE;
	}
	public String getFEES_DATE() {
		return FEES_DATE;
	}
	public void setFEES_DATE(String fEES_DATE) {
		FEES_DATE = fEES_DATE;
	}
	public int getNUMBERS() {
		return NUMBERS;
	}
	public void setNUMBERS(int nUMBERS) {
		NUMBERS = nUMBERS;
	}
	public long getHOSPITAL_NUM() {
		return HOSPITAL_NUM;
	}
	public void setHOSPITAL_NUM(long hOSPITAL_NUM) {
		HOSPITAL_NUM = hOSPITAL_NUM;
	}
	public String getTREATMENT_WAY() {
		return TREATMENT_WAY;
	}
	public void setTREATMENT_WAY(String tREATMENT_WAY) {
		TREATMENT_WAY = tREATMENT_WAY;
	}
	public Date getSETTLE_DATE() {
		return SETTLE_DATE;
	}
	public void setSETTLE_DATE(Date sETTLE_DATE) {
		SETTLE_DATE = sETTLE_DATE;
	}
	public long getPATIENT_ID() {
		return PATIENT_ID;
	}
	public void setPATIENT_ID(long pATIENT_ID) {
		PATIENT_ID = pATIENT_ID;
	}
	public String getPATIENT_NAME() {
		return PATIENT_NAME;
	}
	public void setPATIENT_NAME(String pATIENT_NAME) {
		PATIENT_NAME = pATIENT_NAME;
	}
	public int getVERSION() {
		return VERSION;
	}
	public void setVERSION(int vERSION) {
		VERSION = vERSION;
	}
	public String getFEEDBACK() {
		return FEEDBACK;
	}
	public void setFEEDBACK(String fEEDBACK) {
		FEEDBACK = fEEDBACK;
	}
	
	public AuditOpinion(int oPINION_ID, String bUSINESS_NUM, long dOCUMENT_NUM,
			String oPINION_ENCODING, String pROJECT_ENCODING,
			String pROJECT_NAME, Double mEDICAL_INFOSUM, Double cROSS_CLAIM,
			String rULE_NAME, String dEDUCT_REASON, String rEPAY_REASON,
			String dOCTOR_NAME, String rOOM_ENCODING, String rOOM_NAME,
			Date iN_DATE, Date oUT_DATE, String fEES_DATE, int nUMBERS,
			long hOSPITAL_NUM, String tREATMENT_WAY, Date sETTLE_DATE,
			long pATIENT_ID, String pATIENT_NAME, int vERSION, String fEEDBACK) {
		super();
		OPINION_ID = oPINION_ID;
		BUSINESS_NUM = bUSINESS_NUM;
		DOCUMENT_NUM = dOCUMENT_NUM;
		OPINION_ENCODING = oPINION_ENCODING;
		PROJECT_ENCODING = pROJECT_ENCODING;
		PROJECT_NAME = pROJECT_NAME;
		MEDICAL_INFOSUM = mEDICAL_INFOSUM;
		CROSS_CLAIM = cROSS_CLAIM;
		RULE_NAME = rULE_NAME;
		DEDUCT_REASON = dEDUCT_REASON;
		REPAY_REASON = rEPAY_REASON;
		DOCTOR_NAME = dOCTOR_NAME;
		ROOM_ENCODING = rOOM_ENCODING;
		ROOM_NAME = rOOM_NAME;
		IN_DATE = iN_DATE;
		OUT_DATE = oUT_DATE;
		FEES_DATE = fEES_DATE;
		NUMBERS = nUMBERS;
		HOSPITAL_NUM = hOSPITAL_NUM;
		TREATMENT_WAY = tREATMENT_WAY;
		SETTLE_DATE = sETTLE_DATE;
		PATIENT_ID = pATIENT_ID;
		PATIENT_NAME = pATIENT_NAME;
		VERSION = vERSION;
		FEEDBACK = fEEDBACK;
	}
	public AuditOpinion() {
		super();
	}	
public AuditOpinion(String[]data){
		super();
		    System.out.println(data.length+"chang"+data[16]);
			/*OPINION_ID = Integer.valueOf(data[0]);
			BUSINESS_NUM =data[1];
			DOCUMENT_NUM = Long.parseLong(data[2]);*/
			OPINION_ENCODING = data[3];
			PROJECT_ENCODING = data[4];
			PROJECT_NAME = data[5];
			System.out.println(data[9]+"1111");
			MEDICAL_INFOSUM = Double.valueOf(data[6]);
			CROSS_CLAIM = Double.valueOf(data[7]);
			RULE_NAME = data[8];
			DEDUCT_REASON = data[9];
			REPAY_REASON = data[10];
			DOCTOR_NAME = data[11];
			ROOM_ENCODING = data[12];
			ROOM_NAME = data[13];
			SimpleDateFormat sim=new SimpleDateFormat("yyyy/MM/dd hh:mm:ss");
			try {
				IN_DATE = sim.parse(data[14]);
				OUT_DATE = sim.parse(data[15]);
				SETTLE_DATE = sim.parse(data[20]);
			} catch (ParseException e) {
				// TODO Auto-generated catch block
				e.printStackTrace();
			}
			FEES_DATE = data[16];
			NUMBERS = Integer.valueOf(data[17]);
			HOSPITAL_NUM = Long.parseLong(data[18]);
			TREATMENT_WAY = data[19];
			PATIENT_ID = Long.parseLong(data[21]);
			PATIENT_NAME = data[22];
			VERSION = Integer.valueOf(data[23]);
			FEEDBACK = data[24];	
			
		}		
	}

67,513

社区成员

发帖
与我相关
我的任务
社区描述
J2EE只是Java企业应用。我们需要一个跨J2SE/WEB/EJB的微容器,保护我们的业务核心组件(中间件),以延续它的生命力,而不是依赖J2SE/J2EE版本。
社区管理员
  • Java EE
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧