java - 为什么可以实例化 String 而不能实例化 Number(Long,Double,Integer...)?

标签 java string instantiation long-integer

嗨,为什么可以实例化 String 而不能实例化 Numbers。我已经为此做了一个例子

public static void main(String[] args) throws InstantiationException,
        IllegalAccessException {
    String a = "s";
    String newInstance = a.getClass().newInstance();
    System.out.println(newInstance);
    Double b = 0d;
    Double newInstance2 = b.getClass().newInstance();
    System.out.println(newInstance2);
}

最佳答案

调用 newInstace调用默认构造函数。 Double没有。

如果您想使用反射进行实例化,那么您必须使用 Class.#getConstructor 获取该类的构造函数之一。通过将适当的参数类型传递给它,然后调用它的方法 Constructor#newInstance通过向其传递适当的参数。

关于java - 为什么可以实例化 String 而不能实例化 Number(Long,Double,Integer...)?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20772895/

相关文章:

java - 使用 JNI 的 Java 代码流

java - 如何让自定义绘制组件显示在 swing GUI JPanel 中?

java - Eclipse 插件,ClassCastException

javascript - 将正则表达式修饰符选项传递给 RegExp 对象

c - 在将 void* 转换回 String 时遇到一些问题

string - 在FLASH中留下数据数组(字体) - AVR GCC中的PROGMEM

java - 在 Mockito 中检测到未完成的 stub

c++ - 全局(外部)变量的交叉初始化

java - 为什么可以将变量赋值给接口(interface)类型?

php - PHP 应用程序可能存在循环依赖问题