C#泛型函数获取T类型名称

C#泛型函数获取T类型名称,第1张

泛型方法是使用类型参数声明的方法,如下所示:

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中 如何得到泛型参数的类型,并在另一个方法中使用等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!

欢迎分享,转载请注明来源:内存溢出

原文地址:https://54852.com/web/9509040.html

(0)
打赏 微信扫一扫微信扫一扫 支付宝扫一扫支付宝扫一扫
上一篇 2023-04-29
下一篇2023-04-29

发表评论

登录后才能评论

评论列表(0条)

    保存