黑马程序员技术交流社区

标题: 请教:小代码不能通过编译 [打印本页]

作者: 黑马李刚    时间: 2011-9-1 19:15
标题: 请教:小代码不能通过编译
[code=java]class L
{
        public static void main(String args[])
        {
                TreeSet<String> ts=new TreeSet<String>();
                ts.add("abc02");
                ts.add("abc02");
                ts.add("abc02");
                ts.add("abc02");
                ts.add("abc02");
                System.out.println(ts);
        }
}[/code]

编译时显示:
L.java:5: 找不到符号
符号: 类 TreeSet
位置: 类 L
                TreeSet<String> ts=new TreeSet<String>();
                ^
L.java:5: 找不到符号
符号: 类 TreeSet
位置: 类 L
                TreeSet<String> ts=new TreeSet<String>();
                                       ^
2 错误
作者: 李叶    时间: 2011-9-1 19:26
这种写法是没有问题的,楼主需要检查两样东西

第一是检查自己所使用的JDK是否是1.5或者以上版本的
因为TreeSet<String>这种写法只有1.5版本以上的JDK才支持

第二是检查在程序的开头有没有这样一句话:
import java.util.TreeSet;
因为如果想要在程序中使用Java自带的类的话,只要这个类不是java.lang包下的类,都必须要手动import进来
[ 本帖最后由 李叶 于 2011-09-01  19:30 编辑 ]
作者: 匿名    时间: 2011-9-1 19:42
[b]找不到符号,类TreeSet[/b]  意思是说在L类所在的包下没有TreeSet(这个类在java.util包中,当然你也可以自己写一个TreeSet类,然后再该类中实现add方法,这样也不会报错)这个类,你需要导入类所在的包,即import java.util,如果用到的是java.lang包下的类,则不需要导包(按我的理解可能是java.lang包下的类的使用频率较高,所以jdk帮我们默认的导入了java.lang包)
作者: 匿名    时间: 2011-9-1 20:37
[quote] 原帖由 [i]黄敏文[/i] 于 2011-09-01 19:42 发表 [url=http://bbs.itheima.com/redirect.jsp?goto=findpost&pid=8712&ptid=1341][img]http://bbs.itheima.com/images/common/back.gif[/img][/url]找不到符号,类TreeSet  意思是说在L类所在的包下没有TreeSet(这个类在java.util包中,当然你也可以自己写一个TreeSet类,然后再该类中实现add方法,这样也不会报错)这个类,你需要导入类所在的包,即import java.util,如果用到的是java.lang包下的类,则不需要导包(按我的理解可能是java.lang包下的类的使用频率较高,所以jdk帮我们默认的导入了java.lang包) [/quote]
呵呵,我找到问题的关键点的能力还是没有你强~




欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2