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类型,应该怎样转换呢?


隔江千里
浏览 2562回答 5
5回答

慕森王

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

慕运维8079593

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

喵喔喔

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

长风秋雁

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

泛舟湖上清波郎朗

你要知道string类型被final修饰,不能被继承,你的version类和string类型本身就是两种类型,你要做的的话简单,把string的类里面的代码复制一份到version里面去,然后随便修改一下就差不多了可以用了。
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Java