java中,问什么能直接 Sting s=(String)ob??其中ob是object的一个对象。

2025-05-22 07:46:53
推荐回答(6个)
回答1:

这是object类型转换为String类型,只要这个ob是String类型封转出来的,就可以这么转换。举个例子:

import java.util.*;
public class Test {
public static void main(String[] args) {
String a="abcdef"; //先定义一个String类型
List list=new ArrayList();
list.add(a);
Object ob =list.get(0); //获得一个Object对象,但这Object对象就是String类型向上封装的
String s=(String)ob; //所以可以转换为String类型
System.out.println(s);
}
}

回答2:

谢谢,请参考 Object 的 toString 方法,任何对象都可以转化成String。
建议你看看 Object toString 方法你就知道返回的是什么了。

其实String 也是一个对象。

回答3:

String ob1;String ob2;String ob3这样声明的都仅仅是个引用而已,他们并不在内存中自己的存储地址,就像C里面的指针一样。
new Sting("abc");new String();"kkk"都是实际上在内存中划分出来的地址,他们是实际存在于内存中的,如果没有任何引用指向该地址,java虚拟机会在某个时候把它当做垃圾自动回收的。
在回头看你的程序,ob1=new String("abc");ob2=ob1;ob3=new String();ob1="kkk";
这里都是把引用指向地址,实际system.out.print打印的是地址中的值,跟引用本身无关系,所以把ob1指向"KKK"实际并不影响ob2指向new String("abc"),所以打印的仍然是abc

回答4:

这属于对象下转型,因为Object类是所有类的父类,String是Object的子类

回答5:

用String s =ob.toString()就行。

回答6:

2个