泛型在静态方法和静态类中的问题

简介: 泛型类的静态成员不能使用类声明的泛型参数,因静态成员不依赖对象实例,而泛型类型在对象创建时才确定。如`public class Test2<T>`中,`static T one`会编译错误。但泛型方法可独立定义类型参数,如`public static <T> T show(T one)`正确,其T与类无关。

泛型类中的静态方法和静态变量不可以使用泛型类所声明的泛型类型参数,举例说明:
public class Test2 {
public static T one; //编译错误
public static T show(T one){ //编译错误
return null;
}
}
因为泛型类中的泛型参数的实例化是在对象定义时候指定的,而静态变量和静态方法是不需要通过对象来调用的,对象都没有创建,如何确定这个泛型是何类型呢?所以说上面的代码明显是错误的。

但是需要注意下面的一种特殊情况
public class Test2 {
public static T show(T one){ //这是正确的
return null;
}
}
因为这是一个泛型方法,在泛型方法中使用过的T是自己在方法中定义的T,而不是泛型中的T

相关文章
|
4月前
|
安全 小程序 JavaScript
OAuth2.0四种授权模式
OAuth2四种授权模式简介:授权码模式最安全,适用于第三方登录;简化模式无授权码,token直接返回,适合无后端场景;密码模式需用户共享账号信息,仅限高度信任服务;客户端模式为服务间调用,无需用户参与。
|
4月前
|
存储 NoSQL 物联网
MongoDB应用场景
MongoDB适用于社交、游戏、物流、物联网及直播等场景,因其支持海量数据存储、高频读写操作。用户信息、动态、日志等低事务性、高并发数据可高效存取,尤其适合用嵌套结构与地理位置索引优化查询,是大规模非结构化数据存储的理想选择。(238字)
|
4月前
|
安全 Java Spring
DelegatingFilterProxy
在web.xml中配置的DelegatingFilterProxy,实际是Spring Security的入口。其核心是通过`doFilter`方法,首次调用时根据`targetBeanName`(即`springSecurityFilterChain`)从Spring容器中获取真正的过滤器`FilterChainProxy`,并缓存到`delegate`属性。随后执行该代理过滤器,实现安全控制链。
|
4月前
|
安全 Java Spring
SecurityFilterChain
`SecurityFilterChain` 是Spring Security中定义安全过滤器链的接口,其唯一实现类 `DefaultSecurityFilterChain` 封装了请求匹配器和过滤器列表,用于判定请求是否匹配并提供对应的过滤器链,是Web安全配置的核心组件。
|
4月前
|
存储 安全 Java
认证流程分析
`UsernamePasswordAuthenticationFilter` 是 Spring Security 处理表单登录的核心过滤器,拦截 `/login` 的 POST 请求,提取用户名密码并封装为 `UsernamePasswordAuthenticationToken`,交由 `AuthenticationManager` 认证。认证成功后将结果存入 `SecurityContext`,支持“记住我”及后续处理,失败则清空上下文并调用失败处理器。
|
4月前
|
安全 数据安全/隐私保护
什么是OAuth2.0
OAuth(开放授权)是一种安全、简易的标准,允许第三方应用在不获取用户账号密码的情况下,获得用户资源授权。OAuth2.0是其升级版,安全性与灵活性更强,但不兼容OAuth1.0,已完全取代旧版本。
|
4月前
|
存储 安全 Java
OAuth2.0使用场景
A网站需打印用户存于B网站的照片时,传统方式需共享账号密码,而OAuth2只需获取临时通行令牌,按需授权资源访问权限,更安全灵活。注意:OAuth2侧重服务间资源授权,不同于单点登录。Spring Security集成OAuth2可实现资源共享与单点登录。
|
4月前
|
Java 数据库连接 mybatis
映射关系
MyBatis中通过resultMap实现一对一、一对多、多对一及多对多映射。一对一用于属性与字段映射;一对多通过`&lt;collection&gt;`关联主表与子表集合;多对一使用`&lt;association&gt;`关联对象;多对多借助中间类实现双向集合映射,灵活处理复杂关系数据。
|
4月前
|
缓存 Java
线程池初始化严禁使用Executors
阿里巴巴代码规范禁止使用Executors创建线程池,因易导致OOM。推荐手动创建ThreadPoolExecutor,合理设置参数,避免资源耗尽风险。
|
4月前
|
SQL 数据库 数据安全/隐私保护
用于绕过身份验证的 SQL 注入示例
SQL注入可绕过登录验证,攻击者通过提交恶意构造的用户名(如admin&#39;)--)和空密码,利用注释符使数据库忽略密码校验,从而非法登录。该技术依赖应用缺乏输入验证,凸显严格过滤与参数化查询的重要性。(238字)

热门文章

最新文章