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

简介: 泛型类的静态成员不能使用类声明的泛型参数,因静态成员不依赖对象实例,而泛型类型在对象创建时才确定。如`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

相关文章
|
20小时前
什么是泛型擦除后保留的原始类型
泛型擦除后生成原始类型,类型变量被替换为其限定类型(无显式限定则用Object)。如`Pair&lt;T&gt;`变为`Pair`,成员由`T`变为`Object`;若`T extends Comparable`,则擦除后为`Comparable`。
|
20小时前
|
前端开发 开发者
withCredentials 属性
跨域请求中若需发送Cookie,服务器须设置Access-Control-Allow-Credentials: true,并明确指定Access-Control-Allow-Origin为具体域名,不能为星号。前端需在XMLHttpRequest中显式设置withCredentials = true,否则浏览器不会携带Cookie。注意,Cookie遵循同源策略,仅服务器域名下的Cookie可被上传,前端无法通过document.cookie读取跨域Cookie。
|
20小时前
|
前端开发 开发者
什么是跨域
CORS需浏览器与服务器共同支持,所有现代浏览器均兼容(IE≥10)。通信由浏览器自动完成,开发者无需特殊处理。关键在于服务器需实现CORS接口。请求分为简单和非简单两类,区别在于请求方法和头信息的限制,浏览器会自动处理跨域细节。
|
20小时前
|
SQL 安全 JavaScript
黑名单和白名单
应用内防御SQL注入主要有黑名单和白名单两种输入验证方法。黑名单过滤已知恶意字符,易实现但防护有限;白名单仅允许预定义的合法字符,安全性更高。应根据输入类型定制规则,并结合警报机制及时响应异常输入,确保安全与可用性平衡。
|
21小时前
|
Java
常见加载顺序
本示例展示了Java中各类代码块的执行顺序:静态代码块随类加载仅执行一次,优先于main方法;局部代码块在方法内按顺序执行;构造代码块每次创建对象前执行,再调用构造器。输出顺序体现其优先级与生命周期。
|
20小时前
|
Java 大数据
ArrayList扩容机制
ArrayList添加元素时,先调用ensureCapacityInternal()确保容量,首次添加时默认扩容至10。每次扩容通过grow()实现,新容量为原容量的1.5倍(oldCapacity + (oldCapacity &gt;&gt; 1)),提升性能。当元素数超过当前容量时触发扩容,保证添加高效进行。length为数组属性,length()为字符串方法,size()用于集合元素计数。
|
20小时前
|
SQL 数据库 数据安全/隐私保护
用于绕过身份验证的 SQL 注入示例
SQL注入可绕过登录验证,攻击者通过提交恶意构造的用户名(如admin&#39;)--)和空密码,利用注释符使数据库忽略密码校验,从而非法登录。该技术依赖应用缺乏输入验证,凸显严格过滤与参数化查询的重要性。(238字)
|
20小时前
|
SQL 存储 Oracle
成功的 SQL 注入攻击的后果
SQL注入可导致多种安全威胁:绕过身份验证、窃取敏感信息、篡改或删除数据、破坏网页内容,甚至执行远程系统命令。利用如xp_cmdshell等存储过程,攻击者还能控制数据库服务器操作系统,造成严重危害。
|
20小时前
|
SQL Oracle 安全
了解SQL注入
SQL是用于管理数据库的标准语言,广泛应用于各类Web应用后端。由于用户输入常被用于动态构建SQL语句,若未妥善处理,攻击者可利用SQL注入插入恶意代码,导致身份绕过、数据泄露或传播恶意内容,危害严重。
|
20小时前
|
安全 小程序 JavaScript
OAuth2.0四种授权模式
OAuth2四种授权模式简介:授权码模式最安全,适用于第三方登录;简化模式无授权码,token直接返回,适合无后端场景;密码模式需用户共享账号信息,仅限高度信任服务;客户端模式为服务间调用,无需用户参与。