不兼容的类型:推断变量T具有不兼容的边界相等约束:捕获的#1?扩展java.lang.Object

SakshamB:

我试图连接以运行查询以获取MongoDB中的所有记录,然后将这些记录转换为我作为调用类通用的引用对象类型的列表。该代码运行良好,并在Eclipse中达到了预期的结果,但是在maven构建过程中出现了编译错误,maven和eclipse都引用相同的JDK(1.8)。有人可以帮我解决这个问题吗

public class MongoPersistenceImpl<T> {

MongoDatabase database=(MongoDatabase)MongoConnectImpl.getInstance().getConnection();

 public List<T> getAll(T modelObject){
        MongoCollection<Document> collection=database.getCollection(MongoConnectImpl.MONGO_COLLECTION);
        List<T> reportList=new ArrayList<>();
        Gson gson=new Gson();
        MongoCursor<Document> cursor = collection.find().iterator();
        try {
            while (cursor.hasNext()) {
               T report=gson.fromJson(cursor.next().toJson(),modelObject.getClass());
               reportList.add(report);
            }
            return reportList;
        }catch(Exception e){
            CatsLogger.printLogs(3, "30016", e, MongoPersistenceImpl.class,new Object[]{"get all"} );
            return null;
        } finally {
            cursor.close();
        }
    }

}  

日志:-

[ERROR] COMPILATION ERROR : 
[INFO] -------------------------------------------------------------
[ERROR] incompatible types: inference variable T has incompatible bounds
    equality constraints: capture#1 of ? extends java.lang.Object
    upper bounds: T,java.lang.Object

复制相同内容的完整信息是:-

在此处输入图片说明

更新:显式类型转换对象变量工作,但我仍然需要了解如何?

  public List<T> getAll(T modelObject){
        MongoCollection<Document> collection=database.getCollection(MongoConnectImpl.MONGO_COLLECTION);

        List<T> reportList=new ArrayList<T>();
        Gson gson=new Gson();
        MongoCursor<Document> cursor = collection.find().iterator();
        try {
            while (cursor.hasNext()) {
               Object rep=gson.fromJson(cursor.next().toJson(),modelObject.getClass());
               T report=(T)rep;//explicit type cast
               reportList.add(report);
            }
            return reportList;
        }catch(Exception e){
            CatsLogger.printLogs(3, "30016", e, MongoPersistenceImpl.class,new Object[]{"get all"} );
            return null;
        } finally {
            cursor.close();
        }
    }
名称:

当您尝试将对象投射到的特定对象Typereport,请尝试更改

T report = gson.fromJson(cursor.next().toJson(), modelObject.getClass());

T report = gson.fromJson(cursor.next().toJson(), (java.lang.reflect.Type) modelObject.getClass());

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

类型映射的安全融合多类型的值; `不兼容的类型java.lang.Object中不能转换到捕获的#1?`

不兼容的类型。找到:'java.util.Map.Entry',需要:'java.lang.Object'

java:不兼容类型:推断变量T具有不兼容边界等式约束:下界:java.util.List <>

类不扩展java.lang.Object

不兼容的类型;找到:接口java.util.List <java.lang.Object>,必需:接口java.util.List <test.entity.Emp>

java.lang.IllegalStateException:返回值类型不兼容

java.lang.NoSuchMethodError:android.util.ArrayMap.put(Ljava / lang / Object; Ljava / lang / Object;)Ljava / lang / Object;

Databricks错误java.lang.NoSuchMethodError:scala.Predef $ .refArrayOps([Ljava / lang / Object;)[Ljava / lang / Object;

无法运行FIJI / imagej,java / lang / NoClassDefFoundError:java / lang / Object

java.lang.ClassCastException:[Ljava.lang.Object;

不兼容类型:推断变量T具有不兼容范围

不兼容的类型:不存在类型变量 F、T 的实例,因此 java.util.Collection<T> 符合 java.util.Set<java.lang.Long

错误:不兼容的类型:推断变量R具有不兼容的界限(Lambda Java 8)

NoSuchMethodError:没有接口方法getOrDefault(Ljava / lang / Object; Ljava / lang / Object;)Ljava / lang / Object; 在Ljava / util / Map类中;

无法转换java.lang.Object

frida:错误:a():参数类型不匹配:重载('int','int','long','java.lang.String','java.lang.Object')

DAO返回类型与List <Object>不兼容

ArrayList <Object>中的不兼容类型错误

java.lang.ClassCastException:[Ljava.lang.Object; 无法转换为[Ljava.lang.String;

BlueJ错误:“不兼容的类型:无法将int转换为java.lang.String”和“不兼容的类型:java.lang.String无法被转换为int”

线程“ streaming-start”中的异常java.lang.NoSuchMethodError:scala.Predef $ .ArrowAssoc(Ljava / lang / Object;)Ljava / lang / Object;

无法从类型[java.lang.Object []]转换为类型

Java泛型:不兼容的类型为必需的字符串;找到:java.lang.String

JAVA:不兼容的类型:int无法转换为java.lang.String

不兼容的类型 - int 无法转换为 java.lang.string -java - bluej

Spring数据:不是托管类型:类java.lang.Object

Spring UnsatisfiedDependencyException而不是托管类型:类java.lang.Object

java.lang.VerifyError函数的不兼容参数

java.lang.ClassFormatError:不兼容的魔术值218774561