【问题标题】:How to cast to a specified class type? [duplicate]如何转换为指定的类类型? [复制]
【发布时间】:2012-12-19 16:56:45
【问题描述】:

可能重复:
Cast via reflection and use of Class.cast()

我有一个关于 java 编程的问题。我希望能够通过传递给函数的字符串参数来选择转换类型。如您所见,有一个必须强制转换为子类型的主类。这些子类型应由用户指定。我们怎样才能做到这一点?

public void casting(String subClassCast)
 {
      MainClass mainClass = (subClassCast) MainClassFactory.get();
 }

【问题讨论】:

  • 您为什么要这样做?如果您在编译时不知道要转换成什么,那么就没有理由进行转换。

标签: java spring oop


【解决方案1】:

你写的演员什么都不做。

转换用于将超类的对象分配给子类引用

Object obj = a.toString();
String str = (String) obj;  // The compiler can't check that at runtime obj will be
                            // a String, so the programmer "forces" the compiler to
                            // allow the assignation

需要演员,但在

Object obj2 = (String) obj;

演员什么都不做(如果obj不是字符串,则抛出ClassCastException)。

【讨论】:

    【解决方案2】:

    你可以这样做:

    MainClass mainClass = Class.forName(subClassCast).cast(MainClassFactory.get());
    

    但我不确定这是个好主意。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2018-05-24
      • 1970-01-01
      • 2019-10-04
      • 2013-01-15
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2018-01-28
      相关资源
      最近更新 更多