循环语句对象范围引用问题,高分求解

J2EE 码拜 9年前 (2015-05-10) 673次浏览 0个评论
 

请那位位朋友告诉我以下语句哪里有问题,循环内的变量怎么控制,CATIElement我一定要在下个循环语句用很矛盾啊,请帮我一下吧谢谢

package com.KCCB.app;

import java.util.Iterator;
import java.util.List;
import org.dom4j.Attribute;
import org.dom4j.Branch;
import org.dom4j.Document;
import org.dom4j.DocumentHelper;
import org.dom4j.Element;
import org.dom4j.io.XMLWriter;
import org.dom4j.io.OutputFormat;
import org.dom4j.io.SAXReader;
import com.KCCB.db.*;
import com.KCCB.pojo.*;
import java.io.OutputStream;

public class CreateXmlNBH {

public CreateXmlNBH(){

}

public String createDaeXMLFile(OutputStream os) throws UnsupportedEncodingException{

Element HVTRElement = document.addElement(“HVTR”);
HVTRElement.addComment(“大额交易报文”);
Element RBIFElement = HVTRElement.addElement(“RBIF”);
fxqdejy = (FxqDejy)iterator.next();

  

Element CATIsElement = HVTRElement.addElement(“CATIs”);
    

while(iterator.hasNext()) { / I 循环

fxqdejy = (FxqDejy)iterator.next();
       i=i+1;
     String stri =””+i;
     Element CATIElement = CATIsElement.addElement(“CATI”);
     CATIElement.addAttribute(“seqno”, stri);
Element CTIFElement = CATIElement.addElement(“CTIF”);
Element CTNMElement = CTIFElement.addElement(“CTNM”);
CTNMElement.setText(new String(fxqdejy.getCtnm().getBytes(“cp850”)));//(“客户名称”)
Element CITPElement = CTIFElement.addElement(“CITP”);
CITPElement.setText(fxqdejy.getCitp());  //”客户身份证件类型”
Element CTIDElement = CTIFElement.addElement(“CTID”);
CTIDElement.setText(fxqdejy.getCsnm()); //”客户证件号码”
Element CSNMElement = CTIFElement.addElement(“CSNM”);
CSNMElement.setText(fxqdejy.getCsnm()); //”客户号”
Element CTNTElement = CTIFElement.addElement(“CTNT”);
CTNTElement.setText(fxqdejy.getCtnt()); //”客户国籍”
   
}
     
 
Element HTDTElement = CATIElement.addElement(“HTDT”); !!!“ CATIElement.”这里面的对象就不认了怎么解决啊?

请帮忙看看
25分
变量有活动空间知道么?就是所谓的局部变量和全局变量…

基础一定要掌握啊…

25分
Element CATIElement = null;
while(iterator.hasNext()) { / I 循环

    fxqdejy = (FxqDejy)iterator.next();
    i=i+1;
    String stri =””+i;
    CATIElement = CATIsElement.addElement(“CATI”);

    …
}

关注
多谢各位,转到java时间不长,见笑了,我把这个错误的完整代码全贴上吧,希望能纠正我的错误
package com.KCCB.app;

import java.io.File;
import java.io.FileWriter;
import java.io.UnsupportedEncodingException;
import java.util.Iterator;
import java.util.List;
import org.dom4j.Attribute;
import org.dom4j.Branch;
import org.dom4j.Document;
import org.dom4j.DocumentHelper;
import org.dom4j.Element;
import org.dom4j.io.XMLWriter;
import org.dom4j.io.OutputFormat;
import org.dom4j.io.SAXReader;

import com.KCCB.db.*;
import com.KCCB.pojo.*;

import java.io.OutputStream;

public class CreateXmlNBH {

public CreateXmlNBH(){

}

public String createDaeXMLFile(OutputStream os) throws UnsupportedEncodingException{

String returnvalue=”success”;
int i = 0;
int j = 0;
FxDejyDAO fxdejydao = new FxDejyDAO();
FxqDejy fxqdejy = new FxqDejy();

FxqNumDAO faxnumdao = new FxqNumDAO();
FxqNum faxnum = new FxqNum();

Document document = DocumentHelper.createDocument();
List list = fxdejydao.findAll(“20070401”);
Iterator iterator = list.iterator();

Element HVTRElement = document.addElement(“HVTR”);
HVTRElement.addComment(“大额交易报文”);

Element RBIFElement = HVTRElement.addElement(“RBIF”);
//bookElement.addAttribute(“show”, “yes”);

fxqdejy = (FxqDejy)iterator.next();

Element RINMElement = RBIFElement.addElement(“RINM”);
RINMElement.setText(new String(fxqdejy.getRinm().getBytes(“cp850”)));//(“报告机构名称”)
Element RICDElement = RBIFElement.addElement(“RICD”);
RICDElement.setText(fxqdejy.getRicd());//(“报告机构编码”)
Element RPDTElement = RBIFElement.addElement(“RPDT”);
RPDTElement.setText(fxqdejy.getId().getRpdt());//(“报告生成日期”)
Element CTTNElement = RBIFElement.addElement(“CTTN”);
CTTNElement.setText(fxqdejy.getId().getCttn());//(“交易主体总数”)

    Element CATIsElement = HVTRElement.addElement(“CATIs”);
    

while(iterator.hasNext()) { //CATI 循环

fxqdejy = (FxqDejy)iterator.next();
       i=i+1;
     String stri =””+i;
     Element CATIElement = CATIsElement.addElement(“CATI”);
     CATIsElement.addElement(“CATI”);
    CATIElement.addAttribute(“seqno”, stri);
Element CTIFElement = CATIElement.addElement(“CTIF”);
Element CTNMElement = CTIFElement.addElement(“CTNM”);
CTNMElement.setText(new String(fxqdejy.getCtnm().getBytes(“cp850”)));//(“客户名称”)
Element CITPElement = CTIFElement.addElement(“CITP”);
CITPElement.setText(fxqdejy.getCitp());  //”客户身份证件类型”
Element CTIDElement = CTIFElement.addElement(“CTID”);
CTIDElement.setText(fxqdejy.getCsnm()); //”客户证件号码”
Element CSNMElement = CTIFElement.addElement(“CSNM”);
CSNMElement.setText(fxqdejy.getCsnm()); //”客户号”
Element CTNTElement = CTIFElement.addElement(“CTNT”);
CTNTElement.setText(fxqdejy.getCtnt()); //”客户国籍”
   
}
     
 
Element HTDTElement = CATIElement.addElement(“HTDT”);
HTDTElement.setText(fxqdejy.getHtdt());//”大额交易发生日期”
 
Element HTCRsElement = CATIElement.addElement(“HTCRs”);
Element HTCRElement = HTCRsElement.addElement(“HTCR”);
HTCRElement.addAttribute(“seqno”, “1”);
Element CRCDElement = HTCRElement.addElement(“CRCD”);
CRCDElement.setText(fxqdejy.getCrcd()); //(“大额交易特征代码”)
Element TTNMElement = HTCRElement.addElement(“TTNM”);
TTNMElement.setText(fxqdejy.getTtnm()); //”交易总数”
Element TSDTsElement = HTCRElement.addElement(“TSDTs”);

Element TSDTElement = TSDTsElement.addElement(“TSDT”);
TSDTElement.addAttribute(“seqno”, “1”);
Element RINIElement = TSDTElement.addElement(“RINI”);
Element FINNElement = RINIElement.addElement(“FINN”);
FINNElement.setText(new String(fxqdejy.getFinn().getBytes(“cp850″)));//”金融机构网点名称”
Element FIRCElement = RINIElement.addElement(“FIRC”);
FIRCElement.setText(fxqdejy.getFirc()); //”金融机构所在地区行政区划代码”
Element RLTPElement = RINIElement.addElement(“RLTP”);
RLTPElement.setText(fxqdejy.getRltp()); //”金融机构与大额交易的关系”
Element FICTElement = RINIElement.addElement(“FICT”);
FICTElement.setText(fxqdejy.getFict()); //”金融机构网点代码类型”
Element FINCElement = RINIElement.addElement(“FINC”);
FINCElement.setText(fxqdejy.getFinc()); //”金融机构网点代码”
Element CATPElement = RINIElement.addElement(“CATP”);
CATPElement.setText(fxqdejy.getCatp()); //”账户类型”
Element CTACElement = RINIElement.addElement(“CTAC”);
CTACElement.setText(fxqdejy.getCtac());  //”账户”

Element TBIFElement = TSDTElement.addElement(“TBIF”);
Element TBNMElement = TBIFElement.addElement(“TBNM”);
TBNMElement.setText(new String(fxqdejy.getTbnm().getBytes(“cp850″)));  //”交易代办人姓名”
Element TBITElement = TBIFElement.addElement(“TBIT”);
TBITElement.setText(fxqdejy.getTbit());  //”代办人身份证件类型”
Element TBIDElement = TBIFElement.addElement(“TBID”);
TBIDElement.setText(fxqdejy.getTbid());  //”交易代办人身份证件号码”
Element TBNTElement = TBIFElement.addElement(“TBNT”);
TBNTElement.setText(fxqdejy.getTbnt());  //”代办人国籍”

Element TSIFElement = TSDTElement.addElement(“TSIF”);
Element TSTMElement = TSIFElement.addElement(“TSTM”);
TSTMElement.setText(fxqdejy.getTstm()); //”交易时间”
Element TICDElement = TSIFElement.addElement(“TICD”);
TICDElement.setText(fxqdejy.getTicd()); //”业务标示号”
Element TSTPElement = TSIFElement.addElement(“TSTP”);
TSTPElement.setText(fxqdejy.getTstp());  //”交易方式”
Element TSCTElement = TSIFElement.addElement(“TSCT”);
TSCTElement.setText(fxqdejy.getTsct());  //”涉外收支交易分类与代码”
Element TSDRElement = TSIFElement.addElement(“TSDR”);
TSDRElement.setText(fxqdejy.getTsdr());  //”资金收付标识”
Element TDRCElement = TSIFElement.addElement(“TDRC”);
TDRCElement.setText(“fxqdejy.getTdrc()”);  //”交易去向”
Element TRCDElement = TSIFElement.addElement(“TRCD”);
TRCDElement.setText(“fxqdejy.getTrcd()”);  //”交易发生地”
Element CRPPElement = TSIFElement.addElement(“CRPP”);
CRPPElement.setText(“fxqdejy.getCrpp()”);  //”资金用途”
Element CRTPElement = TSIFElement.addElement(“CRTP”);
CRTPElement.setText(fxqdejy.getCrtp());  //”币种”
Element CRATElement = TSIFElement.addElement(“CRAT”);
CRATElement.setText(fxqdejy.getCrat());  //”交易金额”

Element TCIFElement = TSDTElement.addElement(“TCIF”);
Element CFINElement = TCIFElement.addElement(“CFIN”);
CFINElement.setText(new String(fxqdejy.getCfin().getBytes(“cp850″)));  //”对方金融机构网点名称”
Element CFCTElement = TCIFElement.addElement(“CFCT”);
CFCTElement.setText(fxqdejy.getCfct()); // “对方金融机构代码类型”
Element CFICElement = TCIFElement.addElement(“CFIC”);
CFICElement.setText(fxqdejy.getCfic()); //”对方金融机构网点代码”
Element TCNMElement = TCIFElement.addElement(“TCNM”);
TCNMElement.setText(“new String(fxqdejy.getTcnm().getBytes())”);  //”交易对手姓名”
Element TCITElement = TCIFElement.addElement(“TCIT”);
TCITElement.setText(fxqdejy.getTcit()); //”交易对手证件类型”
Element TCIDElement = TCIFElement.addElement(“TCID”);
TCIDElement.setText(fxqdejy.getTcid());  //”交易对手证件号码”
Element TCATElement = TCIFElement.addElement(“TCAT”);
TCATElement.setText(fxqdejy.getTcat());  //”交易对手账号类型”
Element TCACElement = TCIFElement.addElement(“TCAC”);
TCACElement.setText(“fxqdejy.getTcac()”);  //”交易对手账号”

try{
OutputFormat format = OutputFormat.createPrettyPrint();
format.setEncoding(“gb18030”);
XMLWriter writer = new XMLWriter(os,format);
writer.write(document);
writer.close();
os.close();
faxnum=faxnumdao.findFxqNum(“101”); //更新导出文件的序号
faxnum.setNums(faxnum.getNums()+1);
faxnumdao.updateFxqNum(faxnum);
return “success”;
}catch(Exception e ){
e.printStackTrace();
 }
return returnvalue;
}

/*public int formatXMLFile(String filename){

int returnValue = 1;
try{
SAXReader saxreader = new SAXReader();
Document document = saxreader.read(new File(filename));
XMLWriter output = null;
OutputFormat format = OutputFormat.createPrettyPrint();
format.setEncoding(“GBK”);
output = new XMLWriter(new FileWriter(new File(filename)),format);
output.write(document);
output.close();
returnValue = 1;
}catch(Exception e){
e.printStackTrace();
 }

return returnValue;
}*/

/*public static void main(String[] args) {
CreateXml createXml = new CreateXml();
OutputStream os = null;
System.out.println(createXml.createDaeXMLFile(os));
//System.out.println(createXml.formatXMLFile(“c:/xmltest.xml”));

}*/

}

关注

CodeBye 版权所有丨如未注明 , 均为原创丨本网站采用BY-NC-SA协议进行授权 , 转载请注明循环语句对象范围引用问题,高分求解
喜欢 (0)
[1034331897@qq.com]
分享 (0)

文章评论已关闭!