当前位置: 首页 > 面试题库 >

Java如何从字符串实例化一个类

云凌
2023-03-14
问题内容

我有一串

String className = "DummyClass"

现在我想创建一个类的对象,其中的类名是 类名 这是一样的东西

Object className = new className() // I know it's not possible.

我想知道怎么做…


问题答案:

“使用java.lang.reflect”将回答您的所有问题。首先Class使用来获取对象Class.forName(),然后:

如果要实例化使用检索的类,forName()则必须首先要求它提供一个java.lang.reflect.Constructor代表我想要的构造函数的对象,然后要求该Constructor对象创建一个新对象。该方法getConstructor(Class[] parameterTypes)Class将检索Constructor;
然后,我可以Constructor通过调用其方法来使用它newInstance(Object[] parameters)

Class myClass = Class.forName("MyClass");

Class[] types = {Double.TYPE, this.getClass()};
Constructor constructor = myClass.getConstructor(types);

Object[] parameters = {new Double(0), this};
Object instanceOfMyClass = constructor.newInstance(parameters);

有一种newInstance()方法Class似乎可以满足您的要求。 不要使用它 。它将静默地将检查的异常转换为未检查的异常。

请注意,此方法传播由nullary构造函数引发的所有异常,包括已检查的异常。这种方法的使用有效地绕过了编译时异常检查,否则该检查将由编译器html" target="_blank">执行。该Constructor.newInstance方法通过将构造函数抛出的任何异常包装在(选中)中来避免此问题InvocationTargetException



 类似资料:
  • 我有两个字符串str1和str2。我试图用字符把一些字母从一个字符串复制到另一个字符串。我知道我可以使用字符串复制,但我想要一些字符,而不是全部字符。 在Java中,如何将子字符串从一个字符串复制到另一个字符串?

  • 使用扫描仪,我想读取char的索引,然后将其从字符串中删除。只有一个问题:如果char在字符串中出现多次,那么。替换()将删除所有这些字符。 例如,我想从字符串“纹理文本”中获取第一个“t”的索引,然后只删除那个“t”。然后我想得到第二个't'的索引,然后删除它。

  • 问题内容: 为了访问Java中String的各个字符,我们有。是否有任何内置函数来删除Java中String的单个字符? 像这样: 问题答案: 你也可以使用可变的类。 它具有方法deleteCharAt(),以及许多其他mutator方法。 只需删除需要删除的字符,然后得到结果,如下所示: 这样可以避免创建不必要的字符串对象。

  • 问题内容: 我如何提取字符串[]或arraylist中的所有元素,并以适当的格式(所有空格之间使用单个空格)组合所有单词并存储在数组中。 输出:Java很酷。 问题答案: 使用。 或使用Apache Commons Lang 。 或使用Java8的。

  • 问题内容: 我想用’=’字符分割字符串。但是我只希望它在一开始就分裂。我怎样才能做到这一点 ?这是’_’char的JavaScript示例,但对我来说不起作用, 仅在指定字符的第一个实例上才拆分字符串 范例: 当我尝试String.split(’=’); 它给 但是我需要 谢谢 问题答案: string.split(“=”, 2); 如解释: 此方法返回的数组包含此字符串的每个子字符串,该子字符串

  • 我想用'='charecter分割一个字符串。但是我希望它只在第一个实例上分割。我该怎么做?这是一个'_'char的JavaScript示例,但是它不适用于我只在指定字符的第一个实例上分割字符串 例子: 当我尝试使用字符串时。拆分(“=”);它给 但我需要 谢谢