A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© 2528870651 高级黑马   /  2014-4-6 12:47  /  1811 人查看  /  15 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

本帖最后由 2528870651 于 2014-4-6 16:08 编辑
  1. class StringDemo
  2. {
  3.         public static void main(String[] args)
  4.         {
  5.                 String s1 = "abc";
  6.                 System.out.println(s1);

  7.         }
  8. }
  9. StringDemo.java:29: 错误: 不兼容的类型
  10.                 String s1 = "abc";
  11.                             ^
  12.   需要: String
  13.   找到:    java.lang.String
  14. 1 个错误
复制代码
这里需要String 却找到java.lang.String是怎么回事啊 ??  这2个String有区别??

本来程序还有很多,全删了,还是异常, 这是怎么了???????????????、
不就剩2句话了吗,至于吗????

15 个回复

倒序浏览
来了一把火,全删了,然后再重新写这句,没有问题啊 !!
这是为什么??
回复 使用道具 举报
《String的特性》

1、String类是final的,不可被继承。
2、String类是的本质是字符数组char[], 并且其值不可改变。
3、String类对象有个特殊的创建的方式,就是直接指定比如String s1 = "abc","abc"就表示一个字符串对象。而s1是"abc"对象的地址,也叫做"abc"对象的引用。
4、String对象可以通过“+”串联。串联后会生成新的字符串。
5、Java运行时会维护一个String Pool(String池),JavaDoc翻译很模糊“字符串缓冲区”。String池用来存放运行时中产生的各种字符串,并且池中的字符串的内容不重复。而一般对象不存在这个缓冲池,并且创建的对象仅仅存在于方法的堆栈区。

6、创建字符串的方式很多,归纳起来有三类:
其一,使用new关键字创建字符串,比如String s1 = new String("abc");
其二,直接指定。比如String s2 = "abc";
其三,使用串联生成新的字符串。比如String s3 = "ab" + "c";
回复 使用道具 举报
TNTTNT 发表于 2014-4-6 12:57
《String的特性》

1、String类是final的,不可被继承。

哥们 那个异常错在哪里啊 ??
回复 使用道具 举报
你的代码没问题
回复 使用道具 举报

那怎么出了一个 异常
StringDemo.java:29: 错误: 不兼容的类型
                String s1 = "abc";
                            ^
  需要: String
  找到:    java.lang.String
1 个错误
回复 使用道具 举报
“class StringDemo”前面要加“public”修饰符,因为默认的是“default”,权限不够访问里面的“public static void main(String[] args)”语句,肯定会报错。
回复 使用道具 举报
Peach2014 发表于 2014-4-6 14:01
“class StringDemo”前面要加“public”修饰符,因为默认的是“default”,权限不够访问里面的“public st ...

额  可是我后面重新创建一个新的StringDemo 没问题啊 没有加public 也没有出现错误
回复 使用道具 举报
重新编译下吧,就上面那几行代码没问题,可能是你下面的写的代码的原因,你补全代码我帮你看看
回复 使用道具 举报
sgs_gzy 发表于 2014-4-6 15:08
重新编译下吧,就上面那几行代码没问题,可能是你下面的写的代码的原因,你补全代码我帮你看看 ...

我开始写了好多代码,就出现了这个问题,然后慢慢一条条删,结果剩下这一句的时候还是有问题。
我来火了,就一句话了至于吗??
所以就重新开了一个EditPlus 重新写一遍上面的这几句代码。
这次ok了。
可是,这是为什么呢???
回复 使用道具 举报
2528870651 发表于 2014-4-6 15:17
我开始写了好多代码,就出现了这个问题,然后慢慢一条条删,结果剩下这一句的时候还是有问题。
我来火了 ...

无解了,只能是保存加编译时电脑出的问题,也不要往死里钻,小问题而已,我发现就你遇到的奇葩问题多哈,上篇帖子多出了个长度也被你遇到了,代码也完全没问题,话说你怎么会想到去运行那么多次?然后搞出了的这么个问题?大哥,我觉得很有必要同你加个好友啊,哈哈!
回复 使用道具 举报
sgs_gzy 发表于 2014-4-6 15:25
无解了,只能是保存加编译时电脑出的问题,也不要往死里钻,小问题而已,我发现就你遇到的奇葩问题多哈, ...

有吗?? 哈哈
回复 使用道具 举报
2528870651 发表于 2014-4-6 14:29
额  可是我后面重新创建一个新的StringDemo 没问题啊 没有加public 也没有出现错误 ...

“public”修饰符是必须加上的,因为它没有足够的权限进入,你的之所以可以编译没有问题,是因为你之前生成java类文件中已经存在“StringDemo.class”,你找到这个源文件,然后删除,再编译,你会发现问题又出现了!

QQ图片20140406195924.jpg (23.27 KB, 下载次数: 18)

QQ图片20140406195924.jpg
回复 使用道具 举报
本帖最后由 2528870651 于 2014-4-6 20:18 编辑
Peach2014 发表于 2014-4-6 20:01
“public”修饰符是必须加上的,因为它没有足够的权限进入,你的之所以可以编译没有问题,是因为你之前生 ...

你想多了吧 没问题啊 你学习java的第一个程序Hello World! 的class 有加public修饰?????
你把你的代码完整地发过来给我看看
回复 使用道具 举报
Peach2014 发表于 2014-4-6 20:01
“public”修饰符是必须加上的,因为它没有足够的权限进入,你的之所以可以编译没有问题,是因为你之前生 ...

public不是必须加上的,
你试一下就知道了,
加上public你的类要跟.java文件同名而已。
还有楼主的程序没有问题,
按照他说的,前面写的程序有问题,
然后他删掉错误代码后,IDE还是不通过而已,
这时就要关掉重开eclipse,有时候我也会遇到这种情况。

评分

参与人数 1技术分 +1 收起 理由
枫儿 + 1 赞一个!

查看全部评分

回复 使用道具 举报
linweiwen 发表于 2014-4-6 20:25
public不是必须加上的,
你试一下就知道了,
加上public你的类要跟.java文件同名而已。

嗯是啊   重开EditPlus再编一次就好了
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马