
static void Swap<T>(ref T lhs, ref T rhs)
{
T temp;
temp = lhs;
lhs = rhs;
rhs = temp;
}
这里的T是传进来的,不需要获取。
比如:
public static T CreateDAL<T>()
{
//这里怎么获取T的类型字符串,得到SqlHelper或者IDALSqlHelper
}
这里的T是需要调用的时候确定类型的,不是反过来获取。
说明你的输入参数类型和返回值类型,再试举一个实参,指明期望结果。
你的采纳是我前进的动力,还有不懂的地方,请继续“追问”。
如你还有别的问题,可另外向我求助;答题不易,互相理解,互相帮助。
Java的泛型就是创建一个用类型作为参数的类。就象我们写类的方法一样,方法是这样的method(String str1,String str2 ),方法中参数str1、str2的值是可变的。而泛型也是一样的,定义泛型 一般用 T 表示 public <T> List<T> method(T t){ 方法体} 。它的参数 就是 T 一个类型,你传什么类型的对象,T就是什么类型。
T将是 可变的类型。
反射可以实现
//获得泛型集合
Type[] actualTypeArguments = class文件getActualTypeArguments();
//实体类型
Class<T> domainClass = (Class<T>) actualTypeArguments[0];
获得方法的代码如下,字段的类似
/Project Name [online-courses]
File Name [day02genericGenericDemo5java]
Creation Date [2016-11-23]
<p>
Copyright© 2016 geyyang@hotmailcom All Rights Reserved
<p>
Work hard, play harder, think big and keep fit
/
package day02generic;
import javalangreflectMethod;
import javalangreflectParameterizedType;
import javalangreflectType;
import javautilList;
/
泛型示例-使用反射获取泛型类型<br />
@author <a href="mailto:geyyang@hotmailcom">杨舸</a>
@version 100
@since jdk 18
/
public final class GenericDemo5 {
public void testGenericReflection(List<String> list) {
}
/
测试方法<br />
@param args 命令行参数
@throws Exception 抛出的异常
/
public static void main(String[] args) throws Exception {
Method method = GenericDemo5classgetMethod("testGenericReflection", Listclass);
Type[] parameterTypes = methodgetGenericParameterTypes();
ParameterizedType parameterType = (ParameterizedType) parameterTypes[0]; // 获得第一个泛型参数, Collection类型的集合只有一个泛型参数, Map类型的集合有两个泛型参数
Systemoutprintln(parameterTypegetRawType()); // interface javautilList
Systemoutprintln(parameterTypegetTypeName()); // javautilList<javalangString>
Systemoutprintln(parameterTypegetActualTypeArguments()[0]); // class javalangString
}
}
以上就是关于C#泛型函数获取T类型名称全部的内容,包括:C#泛型函数获取T类型名称、怎么取出类的泛型类型、java中 如何得到泛型参数的类型,并在另一个方法中使用等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!
欢迎分享,转载请注明来源:内存溢出
微信扫一扫
支付宝扫一扫
评论列表(0条)