可以使用java的迭代器 Iterator<E> ,具体的参考api文档 下面的是<我的项目代码一小块>
String permMethod = "";
Iterator<String> iteratorPM = permFunciterator();
for (; iteratorPMhasNext();) {
permMethod += iteratorPMnext();
permMethod += ",";
}
可以使用for循环 <我的项目代码一小块>
for (Organization organ : orgList) {
if (oi != 0) {
orgSbappend(",");
}
orgSbappend(organgetOrgId());
oi++;
}
List<ReadyTask> list;
for(ReadyTask rt:list){
if(rtgetUserInfoId=userInfoId){
rtgetClientName();
rtgetClientAddress();
}
}
获得方法的代码如下,字段的类似
/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
}
}
Java的泛型就是创建一个用类型作为参数的类。就象我们写类的方法一样,方法是这样的method(String str1,String str2 ),方法中参数str1、str2的值是可变的。而泛型也是一样的,定义泛型 一般用 T 表示 public <T> List<T> method(T t){ 方法体} 。它的参数 就是 T 一个类型,你传什么类型的对象,T就是什么类型。
T将是 可变的类型。
如:List<String> list = new ArrayList<String>(); listadd("1");
listadd("2");
采用泛型写法后,list想加入一个Integer类型的对象时会出现编译错误,通过List<String>,直接限定了list集合中只能含有String类型的元素,从而在后续如果进行for循环就无须进行强制类型转换,因为此时,集合能够记住元素的类型信息,编译器已经能够确认它是String类型了。
首先做一个接口,接口中声明需要的取值方法
然后做你要的实际的类,每个类实现不同的取值方法
然后list通过接口进行定义,将每个实际类的对象insert到list中间
然后利用多态实现动态的方法绑定,实现你的需求
泛型可以用"<T>"代表,任意类型的。
解释: “<T>”是泛型的默认值,可以被任意类型所代替,如:
List<String> list = new ArayList<String>();这个就定义了一个String类型的”泛型“集合,那么T的类型就是字符串。
List<T> list = new ArayList<T>();
可以赋值给list:listadd("StringBatch");
可以获取到list的值:listget(0),结果就是”StringBatch“;
这个时候T的类型也是String。也就是说T是动态的,可以被任意指定类型。
答案是肯定的!
public class Demo01<E> {private List<E> list = new ArrayList<E>();
public List<E> store(E[] arr){
list = ArraysasList(arr);
return list;
}
public static void main(String[] args) {
Demo01<String> d = new Demo01<>();
String animals[] = {"Cat","Dog","Pig","Monkey"};
List<String> list = dstore(animals);
for (String string : list) {
Systemoutprint(string + "\t");
}
}
}
以上就是关于java 如何取泛型类的参数列表全部的内容,包括:java 如何取泛型类的参数列表、JAVA List<ReadyTask>自定义泛型如何取值、如何获得当前类的字段,方法参数泛型的类型等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)