泛型如果已知一个变量是String类型,另一个变量未知,如今我应该怎么做才能实现给只能接受一个参数的构造函数一个String类型参数用于构造那个未知类型的变量而非String类型变量
时间: 2024-05-06 16:21:28 浏览: 32
你可以使用Java泛型,定义一个泛型方法,将String类型参数传递给构造函数,并返回未知类型的变量。例如:
```java
public <T> T createObject(Class<T> clazz, String stringParam) throws Exception {
Constructor<T> constructor = clazz.getConstructor(String.class);
return constructor.newInstance(stringParam);
}
```
然后你可以调用这个方法,传递未知类型的Class对象和String类型的参数,例如:
```java
SomeClass obj = createObject(SomeClass.class, "some string");
```
这将返回一个SomeClass对象,其中构造函数将使用"some string"作为参数。
相关问题
泛型如果已知一个变量是String类型,另一个变量未知,如今我应该怎么做才能传入String变量给构造函数且构造未知变量呢
您可以使用泛型通配符来表示未知的变量类型,通配符使用"?"表示,具体代码如下所示:
```java
public class GenericClass<T> {
public GenericClass(T t, ? unknown) {
//在这里可以使用传入的String类型变量t和未知变量unknown进行一些操作
}
}
```
请注意,这只是示例代码,因为未知变量类型是无法确定的,因此无法在代码中使用未知变量进行操作。
泛型如果已知一个变量是String类型,另一个变量未知,如今我应该怎么做才能传入String变量用于构造未知类型的那个变量呢
您可以使用泛型方法来实现此操作,具体来说,可以编写一个方法,其中一个参数是String类型,另一个参数是Class类型,然后使用Class的newInstance方法来创建一个未知类型的变量。
例子代码如下:
```
public <T> T createUnknownVariable(String stringValue, Class<T> unknownVariableClass) throws Exception {
T unknownVariable = unknownVariableClass.newInstance();
// do something with unknownVariable and stringValue
return unknownVariable;
}
```
即使您本身不知道未知变量的类型,但是在调用泛型方法时,必须传递一个Class参数,这个参数指示泛型方法应该创建哪种类型的对象。在方法体内,您可以使用传递进来的stringValue和unknownVariableClass参数来初始化未知变量。