Tag: generics

为什么ArrayList实现使用Object ?

在Java ArrayList实现基础上的一个对象数组。 谁能解释一下为什么ArrayList使用数组Object[]来代替E[]进行数据存储? 使用Object[]什么好处?

意味着什么,比如implements Comparable ?

在Java 1.4.2中 ,类java.math.BigInteger实现了Comparable , Serializable接口。 在Java 1.5.0中 ,类java.math.BigInteger实现了Serializable , Comparable接口。 这只是一个帮助我询问<和>的例子。 我真正想知道的是<和>东西。 我的问题有三个: implements语句的部分是什么意思? 这个语法叫什么? 它做了什么? PS:谷歌很难用<和>而且不可能首先在SO上搜索<和> 。 谢谢!

通用类型扩展数,计算

我用一种方法建立了数学运算的接口,计算,得到了不同数量的参数 public interface MathOperation { public T calculate(T… args); } 还有这个类的简单实现,它不起作用: private class Sum implements MathOperation { @Override public T calculate(T… args) { return args[0] + args[1]; } } 问题是: bad operand types for binary operator ‘+’ first type: T second type: T where T is a type-variable: T extends Number declared in method calculate(T…) […]

Javagenerics并转换为基本类型

我目前正在尝试学习如何使用一本书中的generics。 在本章中,它说要获取一段数据T并将其转换为整数。 我在Eclipse中尝试不同的东西,但似乎没有人允许这样做。 你怎么能执行以下任务: LinkedList arr = new LinkedList(); Float fl = 8.74273123948; arr.add(fl); 然后在另一个class级: public int findValue(Node node) { T data = node.data; int value = Number.valueOf(data); return value; } 我尝试过在其他一些事情中使用.valueOf()和(int) ,似乎没有什么可以满足Java。 本书坚持保持方法通用,以防使用浮点数或双精度数而不是字符串或整数。 编辑:对于可能有类似问题的其他人。 从对这个问题的所有评论和接受的答案中收集到: 对数据使用.toString(),然后根据需要解析它,无论您需要哪种数据类型。

参数化类型数组

我无法确定以下RHS预期的类型参数 ArrayList<Pair>[] nodes = new ArrayList[indexes.length]; 为什么<Pair>的副本不合法?

为什么LongProperty实现Property 而不是Property ?

我在JavaFX API中遇到了似乎特殊的东西: LongProperty实现Property ,但不实现Property 。 这是什么原因? 我认为这一切都源于Java的协方差和逆变的固有问题,因为generics通过擦除实现愚蠢 ,以保持与字节码的向后兼容性; 但是,通过让LongProperty实现Property 和 Property可能会出现什么问题? 编辑:此问题源于此问题: 以编程方式将LongProperty应用于TableColumn(vs语义)

Java中generics参数类的反映?

想象一下以下场景: class MyClass extends OtherClass{ String myName; //Whatever } class OtherClass { T myfield; } 我正在使用特定的reflection分析MyClass (MyClass.class).getDeclaredFields() ,在这种情况下,我将获得以下字段(和类型,使用字段的getType()): myName –> String myField –> T 我想获得T的实际类型,由于扩展符号中的显式“字符串”,它在运行时已知,如何获取myField的非遗传类型? 编辑决议: 似乎答案是“你不能”。 对于那些以后可能会看到这个问题的人,我建议使用Jackson(我试图这样做来生成JSON)并以这样的方式注释你的类和字段,以便jackson知道inheritance层次结构并且可以自动地做什么建议的正确答案如下。

了解Java中的generics类型

我有一个通用类,说: MyClass 在这个类的方法里面,我想测试T的类型,例如: void MyMethod() { if (T == String) … if (T == int) … } 我怎样才能做到这一点 ? 谢谢你的帮助

List 和List ?

我有一个关于Javagenerics的非常基本的问题。 我认为List和List List是同质的。 我是对的还是有一些我缺少的基础?

尽管Java的类型擦除,但获得T.class

我正在尝试将接口绑定到其实现,从配置文件中读取,以便我可以将其提供给我的IoC容器。 这大致是我正在尝试做的事情: public class PropertyImplementationBinder { // … public Class getInterfaceClass() { return T.class; // OR Class, note T is not newable } public Class getImplementationClass() { return /* read config file to get implementation class */; } } 是否有可能获得T.class ?