首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

TypeVariable.getGenericDeclaration()没有返回我期望的类型

TypeVariable.getGenericDeclaration()是Java语言中的一个方法,用于获取泛型声明的类型。它返回一个Type对象,表示声明该泛型的实体(类、接口、方法等)。

该方法没有返回期望的类型可能是由于以下原因:

  1. 泛型声明的实体未正确定义:确保泛型声明的实体(如类、接口、方法)正确定义了泛型类型参数,并且在使用时传入了正确的类型参数。
  2. 泛型声明的实体未正确使用:确保在使用泛型声明的实体时,传入的类型参数与声明时的类型参数一致。如果类型参数不一致,可能导致getGenericDeclaration()方法返回的类型与期望的不同。
  3. 编译器类型擦除:Java中的泛型在编译时会进行类型擦除,即泛型类型信息会被擦除为原始类型。在这种情况下,getGenericDeclaration()方法可能无法返回期望的类型,因为泛型信息已经丢失。

针对这个问题,可以尝试以下解决方法:

  1. 检查泛型声明的实体是否正确定义,并确保在使用时传入了正确的类型参数。
  2. 检查泛型声明的实体是否正确使用,确保传入的类型参数与声明时的类型参数一致。
  3. 如果问题是由于编译器类型擦除导致的,可以考虑使用反射来获取更具体的类型信息。通过反射可以获取到泛型声明的实体的具体类型,进而获取到期望的类型。

总结:TypeVariable.getGenericDeclaration()方法用于获取泛型声明的类型,如果该方法没有返回期望的类型,可能是由于泛型声明的实体未正确定义或使用,或者是由于编译器类型擦除导致的。可以通过检查定义和使用的方式来解决问题,或者考虑使用反射来获取更具体的类型信息。

页面内容是否对你有帮助?
有帮助
没帮助

相关·内容

期望与痛:SICP

,你需要从这个泥潭中越早跳出来越好),那么你才没有白读这本书。...作为MIT(曾经)计算机系第一门编程课教材,这本书没有像诸多基于C或者Java编程入门教材那样纠结于语法和库——LISP语法确实也没什么可以纠结。...可惜当时出差在外,没有机会参与这个有趣活动。至今想来抱憾。 按:clojure是一直想学却一直未学一门语言,而SICP是一直想读却一直未读一本书。...Anyway,得听本书大名并且许下要阅读此书宏愿,比这还要早得更早。可以称得上是内心隐藏期望了,如今倒成了一种痛。我像一个倒吃甘蔗吝啬鬼,舍不得把最好那段留到最前面。...——于是,买了中文版SICP,却从来没有翻开它;在GitBook下载了LFE(Lisp Flavored Erlang)版本SICP,却从来不曾点开它。将它藏起来了,貌似珍藏,实则逃避。

1.8K60

期望Android APP开发方式

其实写了这么多Android APP后,越发觉得好多代码都是技术含量很低重复复制、粘贴,项目上实现已经越来越没有挑战性和并能激起开发兴趣,那么这些重复工作是否能在未来开发中简化并且提升开发质量呢...,这可能是最近在想问题。...1、代码基础库构建,GITHUB上有很多这种类似的基础库,关于网络请求、DB操作、公共方法等等,关于可以提取出一套作为公共资产; 2、基础框架搭建,起到粘合剂作用,比方MVP、MVVM; 3、UI...定制上也可以参考基础库建设,集成一套公共UI组件。...期望Android APP开发就类似积木搭建方式,比苹果STORYBOARD更容易拖拽,分层像积木一样搭建,UI、然后是添加数据就快速实现一个APP。

10810

【Rust 基础篇】Rust Never类型:表示不会返回类型

导言 Rust是一种以安全性和高效性著称系统级编程语言,其设计哲学是在不损失性能前提下,保障代码内存安全和线程安全。在Rust中,Never类型是一种特殊类型,它表示一个函数永远不会返回。...本篇博客将深入探讨Rust中Never类型,包括Never类型定义、使用场景、使用方法以及注意事项,以便读者了解如何在Rust中使用Never类型来表示不会返回情况。 1....什么是Never类型? 在Rust中,Never类型是一种特殊类型,它表示一个函数永远不会返回。...因为Never类型表示一个函数永远不会返回,所以不存在从Never类型到其它类型转换。...4.2 永远不要返回Never类型 虽然Never类型可以用于表示永远不会返回情况,但在编写代码时,永远不要返回Never类型

29020

链式调用 | 代码没有else

嗯,代码没有else系列,一个设计模式业务真实使用golang系列。 ? 前言 本系列主要分享,如何在我们真实业务场景中使用设计模式。...代码demo package main //--------------- //代码没有`else`系列 //责任链模式 //@auhtor TIGERB<https://github.com/...可被合成复用结构体 type Next struct { // 下一个对象 nextHandler Handler } // SetNext 实现好 可被复用SetNext方法 // 返回值是下一个对象...代码没有`else`,只是一个在代码合理设计情况下自然而然无限接近或者达到结果,并不是一个硬性目标,务必较真。 2....---- 代码没有else系列 更多文章 代码模板 | 代码没有else 点击https://github.com/TIGERB/easy-tips/tree/master/go/src/patterns

1.6K40

函数出错返回数据类型

函数出错返回数据类型有4中情况:错误码、NULL值、空对象、异常对象。 1. 错误码 C语言中没有异常这样语法机制,返回错误码便是最常用出错处理方式。...当函数返回数据是字符串类型或者集合类型时候,我们可以用空字符串或空集合替代 NULL 值,来表示不存在情况。这样,我们在使用函数时候,就可以不用做 NULL 值判断。...抛出异常对象 最常用函数出错处理方式是抛出异常。异常有两种类型:受检异常和非受检异常。 至于孰好孰坏,只需要根据团队开发习惯,在同一个项目中,制定统一异常处理规范即可。...获取信息失败会影响后续逻辑处理,并不是我们期望,此时便是一种异常行为,最好抛出异常。 我们需要明确地告知调用者异常时不可直接吞掉。...从代码封装角度,并不希望将比较底层异常暴露给更上层代码,而且调用者拿到该异常时并不能理解这个异常到底代表了什么,也不知道该如何处理。 异常跟调用者调用函数,在业务概念上没有相关性。

2.1K20

构造函数没有返回值是怎么赋值

众所周知,在java里是不能给构造函数写返回,如果在低版本编译器定义一个构造器写上返回值可能会报错,高版本里面他就是一个普通方法。...可是如果构造函数没有返回值,那么比如Test t = new Test()我们new一个对象时候是怎么赋值呢?...在书里找到这样一段话: 在 Java 虚拟机层面上,Java 语言中构造函数是以一个名为init特殊实例初始化方法形式出现,init这个方法名称是由编译器命名,因为它并非一个合法 Java...类或接口初始化方法由 Java 虚拟机自身隐式调用,没有任何虚拟机字节码指令可以调用这个方法,只有在类初始化阶段中会被虚拟机自身调用。...init代表着虚拟机调用构造函数,现在情况很明显,构造函数返回类型是void,那么它究竟是怎么赋值呢?

1.7K20

Golang 函数返回类型是接口时返回对象指针还是值

1.接口简介 Interface 是一组抽象方法(未具体实现方法,仅包含方法名参数返回方法)集合,如果实现了 interface 中所有方法,即该类型就实现了该接口。...注意: (1)接口中不能含有属性; (2)每种类型都能实现多个接口; (3)未初始化接口类型变量值为 nil。...接口声明格式: type InterfaceName interface { //方法列表 } 2.函数返回类型是接口时返回对象指针还是值 函数返回类型是接口时返回对象指针还是值,这个要看具体需要...期望原对象在后续操作中被修改则返回对象指针。返回对象值则返回是对象副本,对对象副本修改不会影响原对象。 返回对象指针示例。...createEmployeeObj() o.Set() o.Print() e.Print() } 输出结果: company=alibaba company=alibaba 可见函数返回类型是接口时返回对象指针

7.9K30

Python小知识-函数传参怎么设置期望传参类型?

System.out.println(Temp.sum(1,2)); System.out.println(Temp.sum("1","2")); } } 接下来我们再看看一下python语言,在初学...最起码要在运行时候才知道有没有问题,这样的话体验不太好。...在定义函数时候,我们可以在某个参数后面加上冒号以及类型,声明一下这个函数所期望接收参数类型,这样的话,在调用函数时候,如果传入参数类型不是所期望,pycharm编辑器就会有提醒出来: 注意:...1、在普通脚本中,函数定义时候,参数上加上类型声明后,只是声明一种期望接收参数类型,传入其他参数时候只是会告警而已,代码运行不一定会报错 2、在结合某些框架使用时候,用这种方式定义参数类型时...,参数类型可能是一种强制类型校验,在输入不符合类型参数调用时,框架会直接拦截你请求,比如在fastapi框架中使用:

1.5K20

构造函数没有返回值是怎么赋值

个人原创100W+访问量博客:点击前往,查看更多 转自:艾小仙 众所周知,在java里是不能给构造函数写返回,如果在低版本编译器定义一个构造器写上返回值可能会报错,高版本里面他就是一个普通方法。...可是如果构造函数没有返回值,那么比如Test t = new Test()我们new一个对象时候是怎么赋值呢?...在书里找到这样一段话: 在 Java 虚拟机层面上,Java 语言中构造函数是以一个名为init特殊实例初始化方法形式出现,init这个方法名称是由编译器命名,因为它并非一个合法 Java...类或接口初始化方法由 Java 虚拟机自身隐式调用,没有任何虚拟机字节码指令可以调用这个方法,只有在类初始化阶段中会被虚拟机自身调用。...init代表着虚拟机调用构造函数,现在情况很明显,构造函数返回类型是void,那么它究竟是怎么赋值呢?

1.6K20

代码模板 | 代码没有else

嗯,代码没有else系列,一个设计模式业务真实使用golang系列。 ? 前言 本系列主要分享,如何在我们真实业务场景中使用设计模式。...关于怎么用,完全可以生搬硬套总结使用设计模式四个步骤: 业务梳理 业务流程图 代码建模 代码demo 业务梳理 通过历史上接触过各种抽奖场景(红包雨、糖果雨、打地鼠、大转盘(九宫格)、考眼力、...main import ( "fmt" "runtime" ) //------------------------------------------------------------ //代码没有...main import ( "fmt" "runtime" ) //------------------------------------------------------------ //代码没有...代码没有`else`,只是一个在代码合理设计情况下自然而然无限接近或者达到结果,并不是一个硬性目标,务必较真。 2.

1K30

代码组件 | 代码没有else

嗯,代码没有else系列,一个设计模式业务真实使用golang系列。 ? 前言 本系列主要分享,如何在我们真实业务场景中使用设计模式。...,执行子组件逻辑 但是,golang里没有的继承概念,要复用成员属性ChildComponents、成员方法Mount、成员方法Remove怎么办呢?...( "fmt" "reflect" "runtime" ) //------------------------------------------------------------ //代码没有...代码没有`else`,只是一个在代码合理设计情况下自然而然无限接近或者达到结果,并不是一个硬性目标,务必较真。 2....---- 代码没有else系列 更多文章 代码模板 | 代码没有else 链式调用 | 代码没有else 点击https://github.com/TIGERB/easy-tips/tree

1.1K10

订阅通知 | 代码没有else

嗯,代码没有else系列,一个设计模式业务真实使用golang系列。 ? 前言 本系列主要分享,如何在我们真实业务场景中使用设计模式。...接着我们来分析下订单逆向流业务中变与不变: 变 新增取消类型 新增子操作 修改某个子操作逻辑 取消类型和子操作对应关系 不变 已存在取消类型 已存在子操作(在外界看来) 怎么用「观察者模式」?...代码demo package main //------------------------------------------------------------ //代码没有`else`系列...代码没有`else`,只是一个在代码合理设计情况下自然而然无限接近或者达到结果,并不是一个硬性目标,务必较真。 2....---- 代码没有else系列 更多文章 代码模板 | 代码没有else 链式调用 | 代码没有else 代码组件 | 代码没有else 点击https://github.com/

1.8K20

客户决策 | 代码没有else

嗯,代码没有else系列,一个设计模式业务真实使用golang系列。 ? 前言 本系列主要分享,如何在我们真实业务场景中使用设计模式。...关于怎么用,完全可以生搬硬套总结使用设计模式四个步骤: 业务梳理 业务流程图 代码建模 代码demo 业务梳理 我们以某团订单支付页面为例,页面上每一个支付选项都是一个支付策略。...main import ( "fmt" "runtime" ) //------------------------------------------------------------ //代码没有...代码没有`else`,只是一个在代码合理设计情况下自然而然无限接近或者达到结果,并不是一个硬性目标,务必较真。 2....---- 代码没有else系列 更多文章 代码模板 | 代码没有else 链式调用 | 代码没有else 代码组件 | 代码没有else 订阅通知 | 代码没有else

89820

把Idea给改了,看看有没有你常用功能,没有,你告诉来改

: 骨架资源需要通过网络下载,如果网络抖动下载丢失资源了,整个项目就崩溃了 骨架资源需要通过网络下载,如果网速慢,则创建过程可能需要1~2分钟 骨架中默认包括文件与实践开发项目不符合...Bg-Boom是如何快速创建项目的 勇哥在插件中特制了一个项目创建引导功能: 创建时输入启动类名称、勾选默认导入springboot-starter,项目创建时候就会自动创建启动类,导入勾选...快速启停SpringBoot项目功能介绍 Idea自带项目启动问题 idea项目启动如果是单体项目,是没什么问题,但是如果是微服务或者模块较多情况下,就会存在以下问题: 第一次启动,需要一层一层点击到启动类...,还是麻烦 开发10多年,这样启动项目,早就烦了 Bg-Boom是如何一键启动所有项目的 勇哥在插件中特制了一个快速启动栏: 自动扫描当前项目中微服务(仅支持SpringBoot...粉丝过1W,这个图源码就免费公开,你敢不敢点个关注,赌一赌?

90640
领券