Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/309.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 泛型:从静态方法获取ParameteredType类名?_Java - Fatal编程技术网

Java 泛型:从静态方法获取ParameteredType类名?

Java 泛型:从静态方法获取ParameteredType类名?,java,Java,我有一个简单的静态方法: public static <U> U findStuff(String id) { // how can i get the class of type U here ? Class classObject = ....; return classObject.newInstance(); } public static void main(String[] args) { MyEntity entity = MyCla

我有一个简单的静态方法:

public static <U> U findStuff(String id) {
    // how can i get the class of type U here ?
    Class classObject = ....;

    return classObject.newInstance();
}

public static void main(String[] args) {
    MyEntity entity = MyClass.<MyEntity>findStuff("abc");
}
publicstaticu-findStuff(字符串id){
//我怎样才能在这里得到U型的课程?
类对象=。。。。;
返回classObject.newInstance();
}
公共静态void main(字符串[]args){
MyEntity实体=MyClass.findStuff(“abc”);
}
我想知道如何从U获取类对象

3.目前我还不知道路,所以不得不通过这门课。。所以,现在我用的是这样的东西:

public static <U> U findStuff(Class<U> classObject, String id) {
    return classObject.newInstance();
}

public static void main(String[] args) {
    MyEntity entity = MyClass.findStuff(MyEntity.class, "abc");
}
publicstaticu-findStuff(类类对象,字符串id){
返回classObject.newInstance();
}
公共静态void main(字符串[]args){
MyEntity实体=MyClass.findStuff(MyEntity.class,“abc”);
}
//因为对象扩展了java.lang.object
Class classObject=object.getClass();

要获取对象的类,请使用
object.getClass()

顺便说一下,这是一种常见的方法,与泛型无关

Class<?> classObject = object.getClass();
Class classObject=object.getClass();
你做的够多了吗?不清楚您需要
em.find
做什么


编辑:好的,使用编辑,你会遇到类型擦除的问题。基本上,你需要通过你感兴趣的课程,就像你已经在做的那样。有关更多信息,请参阅。这是Java泛型实现方式的一个不幸推论:(

MByD:对不起,我之前的帖子不好。我又更新了我的帖子。谢谢!@Albert Kam-我想你不能像你描述的那样做,但下面的人可能会在几分钟内给你一个肯定的答案:)乔恩·斯基特:很抱歉这篇文章没有描述我的问题。我又更新了我的帖子。非常感谢。乔恩·斯基特:啊,我还不太明白,但我会调查一下。我在想什么可以用于参数化类,比如执行getClass().getGenericSuperClass().getActualTypeArguments。马文实验室:对不起,我上一篇文章中的例子错了。我又更新了我的帖子。非常感谢。
Class<?> classObject = object.getClass();