1. FileItem fi = (FileItem)i.next();
BaseUpLoadBean upBean = new BaseUpLoadBean();
upBean.getWorkBook( fi.getInputStream());.............................12.public class BaseUpLoadBean {
private Workbook myWorkBook = null;
public Workbook getWorkBook (InputStream inp ) throws BiffException, IOException{
myWorkBook = Workbook.getWorkbook(inp);................................2
return myWorkBook 
}
}
1......  fi.getInputStream()得到一个流(对象引用)?得到一块内存地址。  然后用upBean对象使用getworkBook方法。返回myworkbook。他有值。返回给myworkbook,证明他有值。

问题1:如果return个myworkbook 为空的话。只是证明myworkbook为NULL吗?


问题2:当操作结束的时候是不是upBean.getWorkBook( fi.getInputStream());.............................1
他的对象引用已经修改成使用该结束以后的样子了。而不是原来对象引用upBean了?

解决方案 »

  1.   

    没有十分看明白你的问题。1. 据你的理解,“myworkbook为空”与“myworkbook为NULL”的区别是什么?2. 如果我没理解错的话,是的!upBean被调用getWorkBook()方法以后,自身可能发生了改变(其myWorkBook属性可能已不再是null了)。
      

  2.   

    我感觉这个问题不应该用这个例子.你完全可以看看STRING的不变性.
    值传递和引用传递.
      

  3.   

    对不起哦,还是问题 问的有点模糊了。
    1.问题1:如果return个myworkbook,如果没有得到myworkbook的值,也就是说他的引用对象中的myworkbook属性跟本没有发生变化?
    2.问题2:当return个myworkbook属性,证明myworkbook属性有值的话,他return给myworkbook的时候,  private Workbook myWorkBook = null;   其中的myworkbook已经发生了变化。 相应的,他的引用对象的地址是不是也就发生了变化。例如:
    BaseUpLoadBean upBean = new BaseUpLoadBean(); .......upBean原来的引用对象  地址XXXXX
    upBean.getWorkBook( fi.getInputStream());     ........当属性发生变化的引用对象 他的地址会跟原来一样吗? 如果引用对象的内存地址不变的话,我想引用对象是不是只负责调用这个方法? 还是 fi.getInputStream()这个引用传递发生变化,还是引用对象和参数都会变化?          
      

  4.   

    8楼还是说的不清楚  在认真写一下。
    1.问题1:如果return myworkbook时候,如果没有得到myworkbook的值,也就是说类中的myworkbook属性跟本没有发生变化。保持原来的NULL 。
    2.问题2:当return myworkbook时候,证明myworkbook属性发生变化的时候,他return给myworkbook的时候,  private Workbook myWorkBook = null;   其中的myworkbook会发生了变化。比如他属性等用于1000。 相应的,引用对象调用这个类BaseUpLoadBean ,别的方法的时候。这个类会不会让myworkbook的属性一直保持为1000。
    3.问题3:BaseUpLoadBean upBean = new BaseUpLoadBean(); .......upBean原来的引用对象  地址XXXXX 
            upBean.getWorkBook( fi.getInputStream());     ........当属性发生变化的引用对象 他的地址会跟原来一样吗? 
            如果这个引用对象的内存地址不变的话,引用对象是只负责调用这个方法?
    8楼刚才写的思路混,因为太着急写。这个我认真理清思路。