Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/oop/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 如何声明变量类型的对象_Java_Oop_Generics - Fatal编程技术网

Java 如何声明变量类型的对象

Java 如何声明变量类型的对象,java,oop,generics,Java,Oop,Generics,如何声明变量类型的对象?我知道我需要使用泛型,我已经写了这段代码,但我不确定它是否对我想做的事情有意义。 我想声明一个变量类型的对象,并传递一个int或字符串作为对象构造函数的参数。 以下是我编写的代码: CityOp(String CityT, Class<?>[] par) throws ClassNotFoundException, InstantiationException, IllegalAccessException, NoSuchMethodException, Se

如何声明变量类型的对象?我知道我需要使用泛型,我已经写了这段代码,但我不确定它是否对我想做的事情有意义。 我想声明一个变量类型的对象,并传递一个int或字符串作为对象构造函数的参数。 以下是我编写的代码:

CityOp(String CityT, Class<?>[] par) throws ClassNotFoundException, InstantiationException, IllegalAccessException, NoSuchMethodException, SecurityException{
    Class<?> co = Class.forName(CityT);
    Op.getDeclaredConstructor(par);
}
CityOp(字符串CityT,Class[]par)抛出ClassNotFoundException、InstanceionException、IllegaAccessException、NoSuchMethodException、SecurityException{
Class co=Class.forName(CityT);
Op.getDeclaredConstructor(par);
}

代码有意义吗?

这个问题对我来说似乎有点不清楚。如果希望为第一个参数传入
字符串
int
,并且第二个参数必须与第一个参数的类型匹配,则可以使用泛型类来完成此操作,如下所示:

public class CityOp<T> {
    CityOp(T cityT, T[] par) throws ClassNotFoundException, InstantiationException, IllegalAccessException, NoSuchMethodException, SecurityException{
        // Constructor body here
    }
}
公共类城市地图{
CityOp(T cityT,T[]par)抛出ClassNotFoundException、InstanceionException、IllegaAccessException、NoSuchMethodException、SecurityException{
//构造器主体在这里
}
}

这个问题对我来说似乎有点不清楚。如果希望为第一个参数传入
字符串
int
,并且第二个参数必须与第一个参数的类型匹配,则可以使用泛型类来完成此操作,如下所示:

public class CityOp<T> {
    CityOp(T cityT, T[] par) throws ClassNotFoundException, InstantiationException, IllegalAccessException, NoSuchMethodException, SecurityException{
        // Constructor body here
    }
}
公共类城市地图{
CityOp(T cityT,T[]par)抛出ClassNotFoundException、InstanceionException、IllegaAccessException、NoSuchMethodException、SecurityException{
//构造器主体在这里
}
}

你不应该大写cityT,但是当我们不知道你到底想做什么的时候,很难帮上忙。你是说像c#或javascript中的var吗?如果你想只传递一个字符串或int,为什么不只传递两个构造函数,
CityOp(String s,String t)
CityOp(字符串s,int i)
?如果你创建一个泛型类,那么它需要能够接受任何东西,而不仅仅是字符串或int。好吧,你不应该大写cityT,但当我们不知道你实际上在尝试做什么的时候,很难帮上忙。你是说像c#或javascript中的var这样的东西吗?如果你只想传递字符串或int,为什么不仅仅有两个构造函数,
CityOp(String s,String t)
CityOp(String s,int i)
?如果创建泛型类,那么它需要能够接受任何东西,而不仅仅是字符串或int。