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

java – 迭代非泛型List的最佳方法是什么?【代码】

我必须使用一段旧代码,我有一个List,我需要迭代它. Foreach循环不起作用.哪种方法最好,最安全? 例private void process(List objects) {someloop {//do something with list item//lets assume objects in the List are instances of Content class} }解决方法:使用迭代器:Iterator iter = objects.iterator(); while (iter.hasNext()) {Object element = iter.next(); }或者更直接地为每个:for (Object obj : objec...

Java泛型 – 允许混合类型?【代码】

我之前正在运行一些测试,但无法找到解释为什么这段代码能够完成它的工作:public class Test {public static void main(String[] args) {List<Integer> list = new ArrayList(Arrays.asList(Double.valueOf(0.1234)));System.out.println(list.get(0)); //prints 0.1234Object d = list.get(0);System.out.println(d.getClass()); // prints class java.lang.DoubleSystem.out.println(list.get(0).getClass()); // ClassCastExcep...

java – 为什么可以将泛型列表强制转换为其类型参数【代码】

为什么以下代码编译?如果参数是a,为什么允许将通用列表转换为其类型参数接口但不是通用的超级接口? 这是什么意思?//Connection can be substituted by any interface List<Connection> list = null; Connection c = (Connection) list; 解决方法:这与type参数无关.这也有效:List<String> list = null; Connection c = (Connection) list; 这是可能的,因为List是一种接口类型.列表引用可能包含一个实现List接口的对象,也是一个C...

在Java泛型中共享通配符【代码】

假设我有一个界面interface Foo<T> { void foo(T x); T bar() }以及具有未知参数的这种类型的对象:Foo<?>巴兹.然后我可以调用baz.foo(baz.bar()). 但是,现在我需要将值baz.bar()放入一个集合中,稍后再调用它上面的baz.foo().就像是List<???> list; // can I tell the compiler this is the same type as baz's wildcard? list.add(baz.bar()); ... baz.foo(list.get(1));这也不起作用:List<Object> list; list.add(baz.bar());...

java – 泛型 – 我错过了什么或有什么意义?【代码】

我有以下代码:public class AClass<X extends AnInterface> implements AnotherInterface {public AClass(X x){}}为什么我会使用X作为构造函数参数类型,当我可以用AnInterface替换它时?当然,他们的意思是相同的,任何东西都是AnInterface的子类型? 我试图将所有参数类型保持为通用,并且仅在通用参数声明中提及接口名称,例如“X扩展AnInterface”但遇到问题,因为它说我传入的值(类型为AnInterface)不等于输入X. 编辑:public void...

在Java中使用泛型类和泛型方法很难【代码】

java的新手,我确实搜索了一些例子,但我真的很难过. 我有一个使用泛型的节点类:public class Node<T> {private int key;private T data;private Node<T> nextNode;}节点是好的.public class GenericDictionary implements GenericDictionary_interface {private int capacity;private Node<T> [] slots;public void add (Node<T> newNode) {} }我想这就是我写它的方式.我希望GenericDictionary与节点对象一起使用. 我收到一个错误:...

java – 使用泛型,我如何定义一个允许传入任何对象并且不提供警告的类?【代码】

我有一个这样定义的接口:public interface AdditionalProcessing<Pre, Post> {public void postProcess(Pre pre, Post post); }而且我已经决定要创建一个扩展它的NoAdditionalProcessing类.这是一个无操作,它不会为它的实现做任何事情.这是我编译的实现:public class NoAdditionalProcessing implements AdditionalProcessing {@Overridepublic void postProcess(Object o, Object o2) {} }问题是,当我将其传递给这样的方法签名时...

Android面试之百题经典之Java相关答案——synchronized,https,Socket,泛型,CyclicBarrier,GC,volatile,SparseArray,Dalvik

一、线程中sleep和wait的区别 1,这两个方法来自不同的类分别是Thread和Object 2,最主要是sleep方法没有释放锁,而wait方法释放了锁,使得其他线程可以使用同步控制块或者方法 3,wait,notify和notifyAll只能在同步控制方法或者同步控制块里面使用,而sleep可以在任何地方使用 二、Thread中的start()和run()方法有什么区别 start()方法:启动一个线程,调用该Runnable对象的run()方法,不能多次启动一个线程 run()方法:在本线程内...

如何在java中覆盖泛型列表返回类型【代码】

我试图覆盖返回类型为子类中的列表的方法,如下例所示,由于泛型问题,我无法在子类中执行此操作.我无法改变我的超类代码,所以我如何解决这个问题?任何人都可以指导我…非常感谢提前. 无法更新的超级课程:public class Animal {private String legs;}public class TestSuper {public List<Animal> addAnimals() {return animals;} }子类:public class Dog extends Animal {private String sound;}public class TestSub extends Tes...

为什么不能用Java实现泛型数组?【代码】

参见英文答案 > What’s the reason I can’t create generic array types in Java? 15个Java使用类型擦除 我的理解是将新的ArrayList< String>()转换为其原始类型,并且使用大量的语法糖来假装Object的这个ArrayList就像String的ArrayList一样. Java将此称为类型擦除. 例如 这是我用Java写的:public static void main(String[] args) {ArrayList<String> stringList = new ArrayList<>();stri...

java – 帮助创建泛型类以避免代码重复【代码】

我有一个简单的问题,尝试使用Appengine保持DRY. 除了作为参数发送的对象外,下面的两个函数是相同的.实际上我有15个这样的功能.我试图找到一种方法来创建一个超类或通用来实现这一点.public void deleteRecord(Person s) {PersistenceManager pm = PMF.get().getPersistenceManager();try {Person p = pm.getObjectById(Person.class, s.getId());pm.deletePersistent(p);} finally {pm.close();} }和public void deleteRecord(Prod...

java – 抽象泛型类【代码】

我有以下课程:public abstract class Step {public abstract <S,T> S makeAStep(S currentResult, T element); } 我正在尝试实现它所以它需要两个int并返回它们的总和,如下所示:public class sumOfInts extends Step {public <Integer,Integer> Integer makeAStep(Integer currentResult, Integer element){return currentResult + element;} }但是我收到以下错误:The type sumOfInts must implement the inherited abstract me...

java – 使用反射和泛型时的警告【代码】

我该如何重写:<T> T callMethod(String methodName, Object[] parameters) throws ... {...return (T) SomeClass.class.getDeclaredMethod(methodName, parameterTypes).invoke(binding, parameters); }所以它不会产生警告warning: [unchecked] unchecked castreturn (T) SomeClass.class.getDeclaredMethod(methodName, parameterTypes).invoke(binding, parameters); required: T found: Object where T is a type-variable:...

另一种Java泛型“不兼容类型”编译错误【代码】

我正在编写一些代码并遇到了不兼容的类型编译错误.这就是我所拥有的:public interface Expression<T> {int getArity();T evaluate(); }public abstract class Value<T> implements Expression<T> {@Overridepublic final int getArity() { return 0; } }public final class Constant<T> extends Value<T> {private final T value;/** Parameter constructor of objects of class Constant. */public Constant(T val) {value = val...

java泛型-PECS【代码】

1 package com.example.base;2 3 import java.util.ArrayList;4 import java.util.List;5 6 import com.example.spring.MyLog;7 /**8 * Producer extends Consumer super 生产者使用extends,consumer使用super9 * 这里的生产者和消费者是相对容器而言的, 10 * 生产者只能对外提供数据,不可以写入数据,数据来源于赋值操作(将参数化类型为子类的容器赋值过来) 11 * 消费者表示只能向容器中写入数据,不能读取(只能以...