如何在java中将字符串类型转换为我自己的用户类类型

如何在java中将字符串类型转换为我自己的用户类类型,java,casting,Java,Casting,我有两个班,像头等舱和二等舱。在第一个类中,我声明了一个字符串类型的变量,然后将该变量分配给第二个类类型。但它显示了一个例外。请帮忙 这是代码 FirstClass.java public static void main(String[] args) { // TODO Auto-generated method stub SecondClass sc; String a = "world"; Object obj = a; sc = (SecondCl

我有两个班,像头等舱和二等舱。在第一个类中,我声明了一个字符串类型的变量,然后将该变量分配给第二个类类型。但它显示了一个例外。请帮忙

这是代码

FirstClass.java

public static void main(String[] args) {
    // TODO Auto-generated method stub
    SecondClass sc;
    String a = "world";
    Object obj = a;
    sc = (SecondClass) obj;
    System.out.println("" + sc);   
}
错误消息

Exception in thread "main" java.lang.ClassCastException: java.lang.String cannot be cast to com.study.SecondClass
at com.study.FirstClass.main(FirstClass.java:13)

Java是非常强类型的。在Java中无法做到这一点。Java记住类型“world”不是
SecondClass
对象,不能强制进入它

即使您有两个相同的类,比如
ClassOne
ClassTwo
,您仍然无法使用这种方法在它们之间进行转换

但您可以做的一件事是在SecondClass中添加一个构造函数,该构造函数接受一个字符串,并基于该字符串为您提供SecondClass类型的对象。但即使这样,字符串和第二个类对象也是不同的

Object obj = a;
sc = (SecondClass) obj;
在编译时,您告诉java编译器您的对象obj实际上是类SecondClass的对象。这样就可以了。但在运行时,它会知道obj不是SecondClass的实例。所以它会在运行时抛出异常。你就是不能对任何事情施加任何影响

用例:


在多态性的情况下,类型转换是有意义的。例如,您对子类对象使用了多态引用。稍后,您需要使用一些仅在子类中定义和实现的函数。然后您需要将其类型转换为该子类(实际上您的对象就是该子类),然后对其调用所需的函数。

您应该学习OOP的基础知识