ladysosoli
2019-03-13 15:09
采纳率: 95.7%
浏览 3.2k
已采纳

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

  • 点赞
  • 写回答
  • 关注问题
  • 收藏
  • 邀请回答

5条回答 默认 最新

  • qq_22847605 2019-03-13 15:46
    已采纳

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

    点赞 评论
  • mashanshui 2019-03-13 15:31

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

    点赞 评论
  • qq_43396559 2019-03-13 15:48

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

    点赞 评论
  • java_6666 2019-03-13 15:57

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

    点赞 评论
  • dsxjinzhiqiang 2019-03-14 15:46

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

    点赞 评论

相关推荐 更多相似问题