当一个变量还没有new 时,如何作为参数传入 函数? 声明函数static bool func(DataInputStream in){ ……};然后调用DataInputStream in;func(in); // 在这里报错 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 肯定报错如果是方法中定义的DataInputStream 变量,编辑器会报错:变量没有初始化如果是类中声明的成员变量,默认初始化为null,传入方法在运行期肯定报空指针,除非你的方法中做了null的检查为何不实例化就调用变量声明呢? 因为 我要在 func中 实例化,用于读取文件。FileInputStream fi = new FileInputStream(absolutepath);new DataInputStream(new BufferedInputStream(fi)); 你的做法好奇怪DataInputStream in = null;func(in); 很奇怪么?打开文件的步骤往往一样,而分析其中的数据时却往往不同,因而把寻找文件,打开文件的操作做成独立的类或者方法 以便重用,难道java里不常这么做? 哦,我知道问题出在哪里了,楼主是习惯使用C中的指针了,在JAVA中参数都是值传递而不是地址传递,所以出现了这个问题,你可以在你的func()中将流实例化,将该对象作为一个返回值传回来static DataInputStream func(DataInputStream in){ ……};DataInputStream in = func();如果中间发生异常就返回一个NULL DataInputStream in=null;func(in);in.somemethod();//你是想这么用,这样肯定报错,因为这儿in仍是null,即使在func函数体里为in申请了内存,在退出函数体的时候,也会将in重置为null,因为在java函数体里都是值传递的 可以采用炮炮的作法DataInputStream func(){ DataInputStream in = new ...; ... return in;}DataInputStream in2=func();in2.somemethod(); 清了缓存后数据就没了 win7下怎么安装oracle数据库? applet程序无法再网页中执行 隐藏按钮 Swt做的浏览器超链接问题 如何“坐标”元素存入二维数组 关于aix机器使用FTPClient工具包获取带空格目录的问题,求助 JSF的问题 初学java,提个弱弱的问题 用javamail如何获得邮箱中最新的邮件 菜鸟,菜鸟。关于java日期问题 当DataInputStream 的readline方法不可用,怎样一行行读取数据?
为何不实例化就调用变量声明呢?
new DataInputStream(new BufferedInputStream(fi));
static DataInputStream func(DataInputStream in)
{
……
};
DataInputStream in = func();
如果中间发生异常就返回一个NULL
//你是想这么用,这样肯定报错,因为这儿in仍是null,即使在func函数体里为in申请了内存,在退出函数体的时候,也会将in重置为null,因为在java函数体里都是值传递的
DataInputStream in = new ...;
...
return in;
}DataInputStream in2=func();
in2.somemethod();