java 怎样将String类型转换成自定义类型

我之前写了一种将其转成Object,之后会输出java.lang.ClassCastException。

public class VersionNumber {
    public static void main(String[] args) {
        final Version[] oldVum = new Version[1];
        String oldNum = "1.1.1";
        Object obj=oldNum;
        oldVum[0] = (Version)obj;
        System.out.print(oldVum[0]);
    }
}

我想要将String类型的1.1.1改成我自定义Version类型,应该怎样转换呢?

maruifeng__
maruifeng__ 我也遇到这个问题了 加个 构造函数就行 把obj当参数穿进去
4 个月之前 回复
weixin_44769088
c★ヾ 曟 我记得老师上课提过一点这个问题,好像要对version进行一下变动
一年多之前 回复

5个回答

在自定义的Version里面加个构造函数,
public Version(String versionNo){
this.version = versionNo
} 或者普通成员函数,里面创建根据数据创建一个Version类型

Version里面是什么东西,肯定不能这样强转,类型都不一样

你这样子强制转换肯定会报错强制转换错误的。因为你是把Object类型的obj强制转换成你自定义的Version类型,是把父类型转换成子类型,所以不行;你把子类型转换成父类型就不会有这个问题了。所以你要解决这个问题的话可以试试:1.在Version类里面加方法,2.将String类型的1.1.1通过你刚添加的方法进行格式转换并返回,3通过该方法得到的该字符串就是你自定义的类型的了。

强制转换肯定会报错,直接加括号强转就相当于你把土豆说成苹果卖给别人。必然是不行的。
重点在你的version类里面,需要你在version进行特殊处理

你要知道string类型被final修饰,不能被继承,你的version类和string类型本身就是两种类型,你要做的的话简单,把string的类里面的代码复制一份到version里面去,然后随便修改一下就差不多了可以用了。

Csdn user default icon
上传中...
上传图片
插入图片
抄袭、复制答案,以达到刷声望分或其他目的的行为,在CSDN问答是严格禁止的,一经发现立刻封号。是时候展现真正的技术了!
立即提问