黑马程序员技术交流社区
标题:
求助 file问题
[打印本页]
作者:
盛亚昆
时间:
2012-3-30 00:03
标题:
求助 file问题
import java.io.*;
class File
{
public static void main(String[] args)
{
File dir= new File("d:\\java0217");
showDir( dir);
}
public static void showDir(File dir)
{
File[] files = dir.listFiles();
for (int x=0;x<files.length;x++)
{
System.out.println(files[x]);
}
}
}
错误::::高手指点啊
File.java:10: 找不到符号
符号: 构造函数 File(java.lang.String)
位置: 类 File
File dir= new File("d:\\java0217");
^
File.java:15: 找不到符号
符号: 方法 listFiles()
位置: 类 File
File[] files = dir.listFiles();
^
作者:
张明星
时间:
2012-3-30 00:21
自定义的类File和io包中的类File冲突了,换个类名试试
作者:
何万县
时间:
2012-3-30 00:26
类名写错了!!!!!!类名不能是关键字!把File改成File1就行了!
作者:
肖发腾
时间:
2012-3-30 00:27
哥们,File是类,你类的名字定义成了File,换成其它的名字即可了,例如MyFile。测试通过,没有你出现的问题,还有对文件的处理最好加上异常处理哦。。。{:soso_e100:}
作者:
何万县
时间:
2012-3-30 00:28
低级错误谁都犯过,我看了老半天都没看出毛病。看了类名才恍然大悟!下次就住就好了~~~
作者:
盛亚昆
时间:
2012-3-30 00:28
谢谢 指点
作者:
丁佼
时间:
2012-3-30 00:39
本帖最后由 丁佼 于 2012-3-30 00:45 编辑
你的类名和IO包里的File类重名了,貌似是建立对象时直接使用了你建立的类的构造函数,因为你定义的类没有接收字符串的构造函数,所以报告File类里“找不到符号”为 File(java.lang.String)的构造函数;
注意这里的dir引用是建立成功了的,类型就是你写的File类,只是没有具体指向对象,之后因为你写的File类里没有listFiles方法,所以又报告File类里“找不到符号”为listFiles的()方法
测试代码,无错编译通过。。
========================================
import java.io.*;
class File
{
File(String str){}
/*建立String参数的构造函数*/
File[] listFiles(){ return new File[0]; }
/*建立返回值类型为File[]的listFiles方法。里面的内容我直接新建了一个File数组就返回了,只是为了格式要求,没有任何意义的。*/
public static void main(String[] args)
{
File dir= new File("d:\\java0217");
showDir( dir);
}
public static void showDir(File dir)
{
File[] files = dir.listFiles();
for (int x=0;x<files.length;x++)
{
System.out.println(files[x]);
} }
}
复制代码
作者:
郑洋洋
时间:
2012-3-30 13:07
类File已经被sun公司封装过了
作者:
newlaw2013
时间:
2012-3-30 13:26
虽然是低级的错误但一定要分析出正确的原因,这个地方出错的直接原因是自己书写的File类和java.io.File下的同名了,因为你的这个类文件中import了 java.io.*,在这种情况下如果还想继续使用自己的类名,则在引用系统的类的时候就要加上类的全名了,即带上包路径加于区分。在实际的编程中会遇到这样的情况,只需要用类的全名引用即可。
修正后的代码如下:
class File {
public static void main(String[] args) {
java.io.File dir = new java.io.File("d:\\java0217");
showDir(dir);
}
public static void showDir(java.io.File dir) {
java.io.File[] files = dir.listFiles();
for (int x = 0; x < files.length; x++) {
System.out.println(files[x]);
}
}
}
欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/)
黑马程序员IT技术论坛 X3.2