【Java自学-泛型 泛型转型】教程文章相关的互联网学习教程文章

java – 错误的数据类型 – 泛型【代码】

在下面的Java代码中:import java.util.*;public class TestGenericMethod {public static <E> void ArrayToArrayList(E[] a, ArrayList<E> lst) {for (E e : a) lst.add(e); }public static void main(String[] args) {ArrayList<Integer> lst = new ArrayList<Integer>();Integer[] intArray = {55, 66}; // autoboxArrayToArrayList(intArray, lst);for (Integer i : lst) System.out.println(i); String[] strArray = {"on...

Java泛型:按值排序地图【代码】

尝试编译以下函数来排序通用映射我得到此错误:"The method compareTo(V) is undefined for the type V"请帮助完成这项工作!public class CollectionsPlus<K,V> {/*** Sort map by value* @param map* @return*/public static<K,V> Map<K, V> sortMapByValue(Map<K, V> map) {List<Map.Entry<K, V>> list = new LinkedList<Map.Entry<K, V>>(map.entrySet());Collections.sort(list,new Comparator<Map.Entry<K, V>>() {public in...

Java中的泛型生产者和消费者【代码】

我有这个方法来检索作为给定类的实例的对象:public class UtilitiesClass {public static final Collection<Animal> get(Collection<Animal> animals, Class<? extends Animal> clazz) {// returns the Animals which are an instanceof clazz in animals} ... }要调用该方法,我可以这样做:Collection<Animal> dogs = UtilitiesClass.get(animals, Dog.class);这很好,但我也希望能够通过以下两种方式调用该方法:Collection<Anim...

将Java泛型参数类型限制为最终类的列表【代码】

T在以下声明中不受限制.abstract public class Defaults<T>但是,我的Defaults类只处理String,Integer,Double.因此,我想将T限制为String,Integer,Double. 显然,以下是不允许的,因为它们是决赛:abstract public class Defaults<T extends String&Integer&Double>我怎么能这样做?解决方法:你不能.你可以做的最接近的事情是给Defaults一个私有的构造函数private Defaults() {}…并仅为允许的类提供工厂方法:public static Defaults<...

java – 无法将泛型方法的功能接口转换为lambda表达式【代码】

无法将泛型方法的功能接口转换为lambda表达式.以下代码正在运行.它没有lambda表达式,即使用匿名类.public interface Pro{public <T> void callee(T t); }public void fun(Pro obj){}public void implement() {fun(new Pro() {@Overridepublic <Integer> void callee(Integer t){}}); }我无法理解如何使用lambda表达式而不是匿名类.在自己尝试之后,我使用了netbeans中显示的提示.我使用所示的灯泡来做到这一点. 这就是我得到的,一个...

java – 为什么我不能使用泛型类型来实现非泛型签名【代码】

我对Java编译器有点困惑. 我有一个带有“Object”方法签名的接口:public interface Bean {public void setCreated(final Object created); }我想用泛型来实现它:public class BeanImpl<T extends Object> implements Bean{private T created;public void setCreated(final T created){this.created = (T)created;} }但是,这会产生编译器错误:Name clash: The method setCreated(T) of type BeanImpl<T> has the same erasure as...

java – 对扩展存在的Enum类型的泛型感到困惑【代码】

问题1:我对这些代码感到有点困惑:public class MyClass1 <E extends Enum<?>> {// ... } public class MyClass2 <E extends Enum<E>> {// ... }MyClass1和MyClass2有什么不同,这三种不同的E是什么意思? 问题2:从Class Enum <E extends Enum<E>>开始This is the common base class of all Java language enumeration types.但是不是所有Enum类型的常见基类Enum< E>? 问题3:现在我有这个课程:public class MyClass<E extends...

理解java中的有界泛型.有什么意义?【代码】

我试图理解有界类型,而不是完全理解它们的观点. 在https://docs.oracle.com/javase/tutorial/java/generics/bounded.html上有一个有界泛型的例子,提供了这个用例:public class NaturalNumber<T extends Integer> {private T n;public NaturalNumber(T n) { this.n = n; }public boolean isEven() {return n.intValue() % 2 == 0;}// ... }如果要限制可以作为参数化类型的类,为什么不要忘记参数化,并且具有:public class Natural...

java泛型类层次结构和泛型实现【代码】

这可能是一个愚蠢的问题,但我无法理解为什么下面的编译失败了. 我的班级层次结构Dao.javapublic interface Dao<E extends Entity, S extends SearchCriteria> {<E> E create(E e) throws Exception; }这个Dao有一个通用的实现DaoImpl.javapublic abstract class DaoImpl<E extends Entity, S extends SearchCriteria> implements Dao<E, S> {@Overridepublic <E> E create(E e) throws Exception {throw new UnsupportedOperationE...

java – 运算符”不能应用于’T’,’T’表示有界泛型类型【代码】

参见英文答案 > Generic type extending Number, calculations 2个下面的代码片段告诉我错误,如标题中所示,我没有弄清楚为什么它不起作用,因为T的类型为Number,我希望运算符”没问题.class MathOperationV1<T extends Number> {public T add(T a, T b) {return a + b; // error: Operator '+' cannot be applied to 'T', 'T' }}如果有人能提供一些线索,那将不胜感激,谢谢!解决方法:这种泛型算...

java – 组合和泛型【代码】

我正在尝试解决这个“组合泛型”的情况,并使PostCompany.send(msg)与传递给类的类型兼容. 我可以更改什么以允许Fedex和FedexPlus在PostCompany类中用作泛型类型,因为Fexed的send方法需要String作为参数而FeexPlus需要Integer?interface Poster<T> {void send(T msg); }class Fedex implements Poster<String> {@Overridepublic void send(String msg) {// do something} }class FedexPlus implements Poster<Integer> {@Overridep...

java – 创建一个复制不同对象的泛型函数【代码】

所以我有一个用例,我需要复制类的对象(类可能会有所不同,具体取决于工厂的输入类型. 这是我想要做的样本public interface DataUtil {// the main wrapper static Object copyObject(Object payload){if(payload instanceof Human))return copyEntry((Human) payload);if(payload instanceof Car))return copyEntry((Car) payload);if(payload instanceof Planet))return copyEntry((Planet) payload); return payload;}stat...

Java:使用泛型实现一个对不同类型的数字进行操作的类【代码】

所以,假设我想写一个操作不同类型数字的类,但我不知道我将要操作什么类型的数字(即整数,双数等). 我想使用泛型来为这个场景创建一个通用类.就像是:Adder<Double> adder = new Adder<Double>();adder.add(10.0d, 10.0d); // = 20.0d但是,我无法实例化我传入Adder类的泛型类型!那么该怎么办?解决方法:哦哦—泛型不是C模板.由于类型擦除,您的示例中的Double甚至不会显示到运行时系统. 在您的特定情况下,如果您只想将各种类型添加...

java – 与泛型类型不匹配【代码】

这是一个界面:public interface Foo<T> extends Comparable<Foo<T>> {... }并且有一些类实现此接口:public class Bar extends Something implements Foo<Something> {public Vector<Foo<Bar>> giveBar() {...} }public class Boo extends SomethingElse implements Foo<SomethingElse> {public Vector<Foo<Boo>> giveBoo() {...} }现在我想在矢量中保留一堆Foos(可能真的是Foos或Boos).Bar bar = new Bar(); Boo boo = new Boo(...

如何找到Java泛型类的类对象?【代码】

假设我有一个通用类型P,它是一个枚举,即< P extends Enum< P>>>,我想从一个字符串中获取Enum值,例如:String foo = "foo"; P fooEnum = Enum.valueOf(P.class, foo);这将导致编译错误,因为P.class无效.那么,为了使上述代码有效,我该怎么办?解决方法:您必须在某处拥有此泛型类型的运行时实例,以便您可以在Enum#getDeclaringClass()之前获取声明类.假设您已将P p声明为某个方法参数,这是一个示例. 例如.public static <P extends En...