Java泛型方法返回值前面为什么要加上T
如下所示,方法返回值前面为什么要加上 <T> 呢?
public static <T> void test(T a){System.out.println(String.format("test %s",a));}
java类对象中如果想使用泛型需要将类定义如下
也就是Class类名后加一个<T>
如果静态方法中想用泛型应当也是要和Class声明类似的,
所以这时候就需要在方法返回值前面加上一个<T>,用于告诉java我这个静态方法定义了一个泛型,
这时候就可以在方法形参或者方法内部使用这个泛型了。
那么此刻还有一个问题,就是静态方法可不可以直接用类上面的泛型呢?
如下所示
public class Test<T> {private T a;public static void test(T a){System.out.println(a);}}
答案是不可以的,此刻编译就会直接出错,
错误是 ‘xxxx.xxx.Xxxx.this’ cannot be referenced from a static context(无法从静态上下文引用),
那么为什么会出现这个问题呢,
笔者认为是Class<T>中的方法是在new一个对象出来的时候指定的,
而静态方法其实不需要new一个对象就可以直接使用,这个时候用Class.静态方法,那么这个泛型到底是什么类型呢?
所以只能用 public static <T> void test 这种方式提前定义好泛型
当然,在类中,非static方法,也是可以定义自己的泛型的,如下所示,
那么按照下面的代码Class已经有一个T泛型了,方法中也有一个T泛型了,这时候到底用的是哪一个呢?
这时候当然是就近原则,用的当然是方法中的T泛型
public class Test<T> {private T a;public <T> T test(String a){return (T)a;}}
Java泛型方法返回值前面为什么要加上T相关推荐
- java 接口 返回值_java api返回值的标准化详解
api返回值的标准化 例如 {"status":200,"message":"操作成功","data":"{\ ...
- Java方法返回值类型归纳
Java方法返回值类型归纳 我们再调用一个方法时,将方法体内产生的一条数据输出到方法体外使用,这条数据我们叫做返回值. 返回值类型分为两大类:第一类,无返回值类型:void.第二类,有返回值类型,返回 ...
- java gettext返回值_012-关于EditText中的getText()方法的返回值类型以及string的转换问题(转)...
EditText中的getText()方法的返回值为CharSequence,如果我们想要获得string类型数据的话,需要在后边加上.toString 另外,String类型转为int:Intege ...
- java split 返回值_java中Split函数的使用方法
1.语法如下 String.split(sourceStr,maxSplit) String.split(sourceStr) 参数说明:sourceStr是被分割的字符串,maxSplit是最大的分 ...
- java 内部类 返回值_Java基础第10天+形式参数和返回值的问题、包、导包、权限修饰符、常见的修饰符、内部类(局部内部类,成员内部类,匿名内部类)...
1:形式参数和返回值的问题(理解) (1)形式参数: 类名:需要该类的对象 抽象类名:需要该类的子类对象 接口名:需要该接口的实现类对象 (2)返回值类型: 类名:返回的是该类的对象 抽象类名:返回的 ...
- java compare 返回值_关于Java你不知道的那些事之Java8新特性[Lambda表达式和函数式接口]...
前言 为什么要用Lambda表达式? Lambda是一个匿名函数,我们可以把Lambda表达式理解为是一段可以传递的代码,将代码像数据一样传递,这样可以写出更简洁.更灵活的代码,作为一个更紧凑的代码风 ...
- java exe 返回值_java调用exe返回值
{// getAccount 方法,使用 get 方法; return accounts.get(index); } } Bank .java: package com.mybank.domain; ...
- java try 返回值_JAVA的try... catch finally的return返回值问题
下面看一个例子(例1),来讲解Java里面中try.catch.finally的处理流程 public class TryCatchFinally { @SuppressWarnings(" ...
- java hashcode返回值_Java String hashCode() 使用方法及示例
Java String hashCode() 使用方法及示例 Java String hashCode()方法返回字符串的哈希码. 字符串hashCode()方法的语法为: string.hashCo ...
最新文章
- MySQL案例-多源复制引起的内存泄漏
- [BZOJ3329] Xorequ
- RPC框架性能基本比较测试
- LeetCode 215 数组中的第K个最大元素
- Intel Sandy Bridge/Ivy Bridge架构/微架构/流水线 (1) - 特性概述
- python函数第一天(day 20)
- lib-flexible vue项目(移动端适配)
- 计算机专业需要外语口试,计算机专业英语词汇大全,计算机专业必读英语词汇!...
- pmp知识点(7)-项目成本管理
- 用ReadyBoost加速Windows 7
- CPU、核心数、线程数、运行内存、超线程理解
- python 方差_使用NumPy介绍期望值,方差和协方差
- 阿里云认证攻略,考试注意事项
- echarts结合阿里云地图json选择器展示地图
- 一键学会三种定位布局,相对定位、绝对定位、固定定位!
- 推荐系统领域对比学习和数据增强论文及代码集锦
- for 循环语句基本用法及示例
- 动物miRNA靶基因本地预测(三)—— 靶基因预测与结果分析
- 一些app抓包抓不到数据的问题
- C++信号量实现线程间同步,windows使用SetEvent,linux使用sem_t,QT测试