Tag: generics编程

如何获取通用类型参数?

只是: public static class MyClass { // i don’t want to keep an instance of T, if it is not necessary. // and it is not nice, not neat. // Or, let’s say, the member are in the form of : ArrayList mArrayList = new ArrayList(); // the problem of getting the generic type parameter […]

有没有比javareflectionapi更好的获取对象的字段getter的方法,或者我在使用PropertyDescriptor的getReadMethod?

语境: 我正在使用从SOAP服务端点接收的数据以通用方式构建Excel文档。 我以List的forms接收数据,并根据调用的方法为我收到的每个Object提供模型(JavaBeans)。 所以我将工作表的第一行设置为对象字段(getDeclaredFields)的标题。 然后我继续用对象列表中的值逐行填充列。 问题: 我还没有找到一种可行的方法来获取对象的字段值。 我已经尝试使用带有javareflectionAPI的getter,使用类似这样的答案的https://stackoverflow.com/a/5503534/4807777 findGetterName,findGetter但是PropertyDescriptor的getName有时候是一个与字段名称不同的字母大小写,从class的getDeclaredFields。 假设我通过大写两个名称来克服这个问题,getReadMethod stil失败 – 似乎没有为使用is前缀的字段(即布尔字段)找到getter。 我不知道我是否在滥用它或者它是一个错误(调试getReadMethod似乎只能使用get前缀,即使它似乎处理boole的is前缀情况)。 考虑到这些字段在对象包之外是不可访问的,因此仅通过调用getter来实现。 有没有更好的方法来获取对象的字段getter或我错过了getter方法的东西? 更新:当JavaBean属性映射到XML元素时,Spring的BeanUtils似乎更适合用它获取属性getPropertyDescriptors比java Class的getDeclaredFields更好。 这修复了不同的字母情况。 但是,当不使用get前缀时,它不会发现它是readMethod。 编辑 – 显示一个getReadMethod没有找到带前缀的getter的例子,正如Laszlo Lugosi所要求的那样。 一个简单的类: class Test { private String assignmentType; private Boolean conserved; public String getAssignmentType() {return assignmentType;} public void setAssignmentType(String assignmentType) {this.assignmentType = assignmentType;} public Boolean isConserved() {return conserved;} public void setConserved(Boolean conserved) […]

返回类型之前generics的目的是什么

例如,在以下代码中 public void inspect(U u){ // Some method } 返回类型之前的目的是什么(该行正在做什么或如何读取)

避免Java类型擦除

有没有办法可以避免类型擦除并获得类型参数的访问权限? public class Foo<T extends Enum & Bar> { public Foo() { // access the template class here? // ie : baz(T.class); // obviously doesn’t work } private void baz(Class qux) { // do stuff like T[] constants = qux.getEnumConstants(); … } } 我需要了解T ,并用它做事。 是否可能,如果是这样,如果不在构造函数中传递类或参数之外的任何地方,它怎么能完成? 编辑:这个问题的主要目的是找出是否有任何关于类型擦除的实用方法 。

有人可以解释一下 mean和何时应该使用以及这种结构应该如何配合和?

我使用generics相当长的时间,但我从来没有使用像List List 。 这是什么意思? 如何使用它? 它如何看待擦除? 我也想知道:它是generics编程(模板编程?)中的标准还是它只是一个java’发明’? 例如,c#是否允许类似的结构?

通用对类

只是尝试这个问题,我在过去的考试试卷中发现,这样我就可以为即将进行的Java考试做准备。 提供用于表示事物对的通用类Pair。 该类应该提供一个构造函数,一个获取该对的第一个成员的方法,一个获取该对的第二个成员的方法,一个用于设置该对的第一个成员的方法,一个用于设置该对的第二个成员的方法。 该类应该针对第一个成员的两个类型进行参数化,并且对于该对的第二个成员进行参数化。 这是这个问题的正确实现吗? public class Pair{ private firstThing first;//first member of pair private secondThing second;//second member of pair public Pair(firstThing first, secondThing second){ this.first = first; this.second = second; } public void setFirst(firstThing first){ this.first = first; } public void setSecond(secondThing second) { this.second = second; } public thing getFirst() { return this.first; […]