自己写个名字为String的类为什么不行 RT。我自己写这个String类在自己的test包下,按理说不和java.lang.String冲突吧?可为什么运行就异常呢? 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 贴下你的代码 String 是java的一个final类,是java的一个关键字 String{String.valueOf();--->nosuchmethod exception?which one to call?} 用到你自己定义的String时都加test.String就可以了吧? String 是java的终态类,并且它在java.lang包中,是java编译器默认导入的.用户不可以继承String.也不能把自定义的类取名为String,如果你非要自定义一个类取名String,Java编译时不会报错,但运行时JVM把String当成系统预导入的java.lang.String而不是你的String,所以你自定义String类的方法系统找不到,并提示java.lang.NoSuchMethodError: ...吧. 贴下你的代码java lang 里面的String有静态方法可能会和你的方法冲突 改个名字叫MyString可能是解决问题的最简便方法 在用到时,添加上报名,否则默认为java.long.String类! package test;public class String { public static void main(String[] args) { System.out.println("helloworld"); }}---------------------------------------------------源码如上的确是nosuchmethod exception你说的这种情况,我觉得就调java.lang.String.valueOf()呗需要调用我自己的String时候,我加上test.String来声明。我是这么想的,可是加载的时候就异常了。 是可以,可是我发这个贴是想知道为什么定义成String不行 class String{ private char[] buffer; public String() { } public String(char[] buffer) { this.buffer = buffer; } public java.lang.String toString(){ return new java.lang.String(buffer); }}public class Test { public static void main(java.lang.String[] args) { java.lang.String javaString = "Hello World"; char[] buffer = javaString.toCharArray(); String myString = new String(buffer); System.out.println(myString); }}不会有任何问题。记住,原来使用标准库String的地方都替换成java.lang.String就可以了。当然把自己的类名和java.lang包里的类名弄成相同的基本上是无聊的行为。 感谢楼上。我的问题就是main函数参数的String没改成java.lang.String 因为 java.lang 包中的类是引导类加载器加载的,是在 JVM 启动时就加载了,所以优先级别最高。 什么叫做异步方法? 多个class实例如何放到一个ArrayList里面 关于SimpleDateFormat的问题,我想不透 求大师救命 新手送分啦 中文乱码问题?!!! 如何不能在JTextField更多的字 使用实现状态栏? 搞不懂?? 鉴于scjp的模拟题大部分没有答案或不是很准确,我打算做个网站大家一起做题,同意者跟贴 javac命令后报错:package javax.servlet.jsp does not exist 很急,窗口最大化后如何使组件自动适应?
String 是java的一个final类,是java的一个关键字
String.valueOf();--->nosuchmethod exception?which one to call?
}
java lang 里面的String有静态方法可能会和你的方法冲突
public static void main(String[] args) {
System.out.println("helloworld");
}
}---------------------------------------------------
源码如上的确是nosuchmethod exception
你说的这种情况,我觉得就调java.lang.String.valueOf()呗
需要调用我自己的String时候,我加上test.String来声明。
我是这么想的,可是加载的时候就异常了。
是可以,可是我发这个贴是想知道为什么定义成String不行
class String{
private char[] buffer; public String() {
} public String(char[] buffer) {
this.buffer = buffer;
}
public java.lang.String toString(){
return new java.lang.String(buffer);
}
}
public class Test { public static void main(java.lang.String[] args) {
java.lang.String javaString = "Hello World";
char[] buffer = javaString.toCharArray();
String myString = new String(buffer);
System.out.println(myString);
}
}不会有任何问题。
记住,原来使用标准库String的地方都替换成java.lang.String就可以了。当然把自己的类名和java.lang包里的类名弄成相同的基本上是无聊的行为。
我的问题就是main函数参数的String没改成java.lang.String