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

java – Spock Stub的泛型【代码】

我无法为泛型类编译Spock存根.构造函数的签名如下:SomeClass(SerSup<Cap> capSup, String foo, String bar);我需要存根第一个参数.以下是我失败的尝试. 第一次尝试:def someClass = new SomeClass(Stub(SerSup<Cap>), "foo", "bar")Error: Groovyc: unexpected token: > Status bar: ',' or ')' expected另一个尝试:def someClass = new someClass(Stub(Cup) as SerSup<Cup>, "foo" ,"bar")groovy.lang.MissingMethodException:...

java – 通过泛型投射【代码】

有没有办法转换对象以返回方法的通用值?我试过这种方式但发生了Casting异常:public <S extends Super> S get(Class<S> clazz) {return (S) new Super(); }public class Super {}public class Sub1 extends Super {}public class Sub2 extends Super {}例外:java.lang.ClassCastException: Cannot cast com.zarinak.app.model.Super to com.zarinak.app.model.Sub1有办法吗?解决方法:您尝试将新Super对象强制转换为已扩展它的对...

java – 使用通配符转换常量泛型【代码】

我正在做静态util方法,它返回已完成的未来与空可选:public class CompletableFutureUtils {private static final CompletableFuture<Optional<?>> EMPTY_FUT = completedFuture(Optional.empty());private static final Optional<?> EMPTY_OPT = Optional.empty();@Nonnull@SuppressWarnings("unchecked")public static <T> CompletableFuture<Optional<T>> emptyOptionalCompletedFuture() {// COMPILE ERROR: incompatible type...

覆盖子类作为参数和泛型:它在Java Lang Spec中的位置?【代码】

我遇到类似以下的Java代码:public interface BaseArg { }public class DerivedArg implements BaseArg { }public abstract class Base <A extends BaseArg> {A arg;void doIt() {printArg(arg);}void printArg(A a) {System.out.println("Base: " + a);}}public class Derived extends Base<DerivedArg> {void printArg(DerivedArg a) {System.out.println("Derived: " + a);}public static void main(String[] args) {Derived d ...

Java初学——高级API集合框架和泛型【代码】【图】

一、集合框架1.集合和数组的区别数组长度固定,并且在增加和删除的方面上会降低效率。集合框架的运用会比较灵活存储的是引用数据类型或者对象,如果并不知道程序运行时会需要多少对象,或者需要 更复杂方式存储对象——可以使用Java集合框架2.集合框架内容图中虚线框为接口 实线框为实现类Iterator:迭代器接口 迭代器的运用 迭代器拥有类似指针的概念 指向每个元素//使用迭代器 配合如下代码Iterator it=set.iterator();//获得迭代...

泛型上的Java静态函数【代码】

嘿我正在尝试编写一个基于其泛型参数调用静态函数的函数.我有以下代码:public class Model<T extends Listable> {private Document doc;/*When the JavaBean is created, a Document object is made usingthe Listable parameter. The request string for the specifictype is used to pull XML-data from the cloud.*/public Model(){try{doc = cloud.request(T.getRequestString());}catch(Exception e){}}/*getMatches (used i...

java – 如何使用有效的泛型声明Class.class【代码】

注意:完全出于好奇而不是任何实际用例. 我想知道是否有办法用有效的类型参数声明Class Class对象:Class cc1 = Class.class; //raw type Class<Class> cc2 = Class.class; //now parameter is raw type Class<Class<?>> cc3 = Class.class; //compile error: inconvertible types如果Class和Class<?>是可以互换的,为什么Class< Class>和类< Class<?>>不? 编辑:该问题可以推广到嵌套原始类型参数的问题.例如:ArrayList<ArrayL...

java – 是否有任何泛型版本的apache公共对象池?

使用apache common pool时,它可以为我提供Java对象池的良好实现.但是他们的KeyedPoolableObjectFactory接口不是类型安全的. Java中是否有任何对象池库可以为我们提供创建类型安全对象池的泛型接口?解决方法:Apache Commons Pool 1.6版支持泛型 http://commons.apache.org/pool/examples.html

如何比较java中泛型类的泛型类型成员【代码】

我在java中编写泛型类时遇到了困难,其泛型成员可以进行比较. 以下是我编写的代码片段,但它给了我编译错误.public class TestClass <E extends Comparable<E>>{ private E data1; private E data2;public void fun(){if(data1 > data2){}}}它通过说compare(‘>’)操作无效给我错误.根据我的理解,如果我扩展Comparable,我应该能够进行此操作.解决方法:Java不是C,并且没有运算符重载.您需要使用由Comparable接口提供的.compareTo().例...

java – 泽西岛中泛型类型的编组【代码】

我需要返回几个结果和结果总数的客户列表.我必须在具有不同实体的几个地方这样做,所以我希望有一个具有这两个属性的泛型类:@XmlRootElement public class QueryResult<T> implements Serializable {private int count;private List<T> result;public QueryResult() {}public void setCount(int count) {this.count = count;}public void setResult(List<T> result) {this.result = result;}public int getCount() {return count;}...

Java:实现一个实例化特定类型集合的泛型方法【代码】

我想实现一个类似于以下内容的泛型方法:private <T> void addToSize(ArrayList<T> list, Class<T> type, int size) {int currentSize = list.size();for(int i = currentSize; i < size; i++) {try {list.add(type.newInstance());} catch (InstantiationException e) {logger.error("", e);} catch (IllegalAccessException e) {logger.error("", e);}} }上面的方法适用于这样的事情:ArrayList<Integer> test = new ArrayList<I...

java – 在return语句中使用泛型【代码】

考虑代码:public List<Products> listProducts(){...return (List<Products>) query.list(); // returning a list containing Products objects}在方法返回类型中使用泛型始终是首选:public List<Products> listProducts(){ ... }1)但是在返回语句中使用泛型是否更可取? 如:return (List<Products>) query.list();2)在return语句中使用简单List是否有任何危害:return (List) query.list();解决方法:没有任何问题,禁止一些关于...

Java泛型PECS【代码】

我知道PECS是什么意思. 制作人扩展,消费者超级. 问题是我怎么知道它是消费者还是生产者? 此代码也遵循“PECS”public class Tree<T> {//List of branches for this treeprivate List<Tree<? super T>> branch = new ArrayList<Tree<? super T>>();public Tree(T t){ this.t = t; }public void addBranch(Tree< ? super T> src){ branch.add(src); }public Tree<? extends T> getBranch(int branchNum){return (Tree<? extends T>)...

java – 为什么泛型方法在赋值中更改了参数化类型?【代码】

在编写处理表单数据的通用方法时,我遇到了以下(我认为)未完成的行为.给出以下代码:public class Test {public <T> void someGenericMethod(Integer a) {@SuppressWarnings("unchecked")T t = (T) a;System.out.println(t);System.out.println(t.getClass());}public static void main(String[] args) {Test test = new Test();test.<BigDecimal>someGenericMethod(42);} }AFAIK,上面的代码应该在行T t =(T)a中生成一个ClassCast...

.NET等效于Java通配符泛型<?>,具有协方差和反方差?【代码】

我试图将一些使用(有界)通配符泛型的Java代码转换为C#.我的问题是,Java似乎允许泛型类型在与通配符一起使用时既是协变的又是逆变的.例如: Java的:interface IInterf { }class Impl implements IInterf { }interface IGeneric1<T extends Impl> {void method1(IGeneric2<?> val);void method1WithParam(T val); }interface IGeneric2<T extends Impl> {void method2(IGeneric1<?> val); }abstract class Generic<T extends Impl> ...