如何将String转换成自定义数据类型

bronica_chen 2009-08-20 05:12:07
如何将string转换成DefineSelf类型,代码如下,我是强制将lost转换成DefineSelf类型。但是在程序里面报错的。请问真正的该如何实现

谢谢。



public class DefineSelf{
public DefineSelf(){
}
.... //自定义的程序
}

public class A{
public String lost;
DefineSelf ds = new DefineSelf();
public DefineSelf disk(){
ds = (DefineSelf)lost; //要将lost的值赋给ds,我是强制将lost转换成DefineSelf类型。但是在程序里面报错的。请问真正的该如何实现
}
}

...全文
1648 14 打赏 收藏 转发到动态 举报
写回复
用AI写文章
14 条回复
切换为时间正序
请发表友善的回复…
发表回复
bronica_chen 2009-08-21
  • 打赏
  • 举报
回复
那我如果想要实现这样的转换,应该如何去做才不会报错呢?请高手指点一下。急着要用的。谢谢!
huachao1 2009-08-21
  • 打赏
  • 举报
回复
强制转换是有条件的,除了原始类型外,其他的转换都是需要有继承关系的
chenchengamao 2009-08-21
  • 打赏
  • 举报
回复
你可以看看设计模式,可能会有点启发。
zptpower1 2009-08-21
  • 打赏
  • 举报
回复
...强类型转换除了基本类型之间存在一定的默认转换关系外,其他类的强类型转换要有继承关系的啊。。。DefineSelf类和String虽然都是继承Object类,但是这两个类本身没有任何关系啊。。。
军哥手记 2009-08-21
  • 打赏
  • 举报
回复
[Quote=引用 6 楼 bronica_chen 的回复:]
引用 5 楼 lvzejun 的回复:
Java codepublicclass DefineSelf{public DefineSelf(){
}
....//自定义的程序}

Java codepublicclass A{public String lost;
DefineSelf ds=new DefineSelf();public DefineSelf disk(){
    Object obj=lost;
  ds= (DefineSelf)obj;return ds;
}
}
编译通过。。强制转换是在父类和子类之间进行,DefineSelf和String不存在任何关系。他们唯一的联系是都是默认继承Object类。这个时候要进行转换先将一个类赋给Object。然后在强制转换成另一个类。

ds= (DefineSelf)obj;
执行到这步的时候,我报下面的错误
java.lang.ClassCastException

[/Quote]
举个列子: 狗是动物,猫是动物, 草是动物吗?

花是动物 吗?

bronica_chen 2009-08-21
  • 打赏
  • 举报
回复
[Quote=引用 5 楼 lvzejun 的回复:]
Java codepublicclass DefineSelf{public DefineSelf(){
}
....//自定义的程序}

Java codepublicclass A{public String lost;
DefineSelf ds=new DefineSelf();public DefineSelf disk(){
Object obj=lost;
ds= (DefineSelf)obj;return ds;
}
}
编译通过。。强制转换是在父类和子类之间进行,DefineSelf和String不存在任何关系。他们唯一的联系是都是默认继承Object类。这个时候要进行转换先将一个类赋给Object。然后在强制转换成另一个类。
[/Quote]
ds= (DefineSelf)obj;
执行到这步的时候,我报下面的错误
java.lang.ClassCastException
  • 打赏
  • 举报
回复
我觉得没有必要,你为什么要将String
类型的对象强制类型转换成你的自定义类型呢?
你完全可以用set/get方法实现啊?
knightzhuwei 2009-08-21
  • 打赏
  • 举报
回复
[Quote=引用 11 楼 bronica_chen 的回复:]
那我如果想要实现这样的转换,应该如何去做才不会报错呢?请高手指点一下。急着要用的。谢谢!
[/Quote]
你到底要干什么 把需求说出来 才有解决的办法 这么直接转肯定是不行的
bayougeng 2009-08-21
  • 打赏
  • 举报
回复
编译通过。。强制转换是在父类和子类之间进行,DefineSelf和String不存在任何关系。他们唯一的联系是都是默认继承Object类。这个时候要进行转换先将一个类赋给Object。然后在强制转换成另一个类。

这位兄弟说的,我觉得应该行的通。
lvzejun 2009-08-20
  • 打赏
  • 举报
回复
public class DefineSelf{
public DefineSelf(){
}
.... //自定义的程序
}


public class A{
public String lost;
DefineSelf ds = new DefineSelf();
public DefineSelf disk(){
Object obj=lost;
ds = (DefineSelf)obj;
return ds;
}
}

编译通过。。强制转换是在父类和子类之间进行,DefineSelf和String不存在任何关系。他们唯一的联系是都是默认继承Object类。这个时候要进行转换先将一个类赋给Object。然后在强制转换成另一个类。
knightzhuwei 2009-08-20
  • 打赏
  • 举报
回复
关键是你的业务需求是什么 你为啥要这么干
nkmf1985 2009-08-20
  • 打赏
  • 举报
回复
给 DefineSelf类 写一个有参的构造函数不行吗


public DefineSelf(String str){
把str分析成成员变量
}

好吃的松子 2009-08-20
  • 打赏
  • 举报
回复
可以学学Integer.parseInt("123");
bigbug9002 2009-08-20
  • 打赏
  • 举报
回复
行不通的.

强转要类型相容才行。比如数值类型之间的强转,父类引用转为子类引用(还要求这个父类引用指向的就是要强转的子类类型)

62,621

社区成员

发帖
与我相关
我的任务
社区描述
Java 2 Standard Edition
社区管理员
  • Java SE
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧