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

理解Java中的泛型方法【代码】

我正在尝试理解我在现有Android应用中阅读的方法.该方法的声明如下:protected <V, T extends Result> void postObject(final V input, final T result, final ConnectionTarget endpoint, final boolean restart, final int id, final LoaderProvider provider, final ServiceCallbacks<T> callbacks) {我刚读过关于泛型的内容,所以我或多或少地了解这里发生了什么,但不完全清楚.因此我有两个问题: >应该输入一个类型(即一个类),...

Java中忽略了泛型【代码】

所以我有这个Java代码:public <A extends Action> List<A> getActionsFor(Actor a) {List<A> theActions = super.getActionsFor(a);for (Action ac: a.getItemCarried().getActions()) {theActions.add(ac);}return theActions; }由于某种原因,javac拒绝.add(ac)声称add(A)不能应用于Action. 我在这里错过了一些关键吗?我可以通过在两个包中创建依赖项来解决这个问题,但我真的不想这样做. 有问题的所有类都已正确导入,并且每个方...

java 泛型和object比较【代码】【图】

引言 我们使用object和泛型做形参,都是为了让这个方法能接收更多类型的对象,让程序变得更健壮,代码复用率更高。当我们回看自己写的代码时会发现,好像使用泛型的地方使用object也可以,使用object的地方使用泛型同样能实现,那么,本文就说一下,泛型和object的却别 正题 先上举例来说明一下object和泛型的使用场景吧,有这样一个需求:写一个数字排序的算法,我们知道java中的数字类型有Double、Float、Byte、Short、Integ...

泛型和varargs java【代码】

以下是我的设置public interface Test<T extends MyInterface> {someMethod(T... a) }public class TestImpl implements Test<MyInterfaceImpl> {someMethod(MyInterfaceImpl... a) }public class MyInterfaceImpl implements MyInterface {}public someClass { @Autowired TestFactory testfactory ......// getting an error -- Type mismatch Can't assign non-array value to an array testfactory.getTest(Type type).som...

具有继承和协方差的Java泛型【代码】

在Java中使用泛型时,我有点难以理解如何正确使用协方差和通配符. 我试图避免使用铸造. 这是我的情况:class Element {}class ChildElement extends Element {}interface A<T> {T doSomething(T foo); }interface B extends A<Element> {}interface C extends B {}class D implements B {@Overridepublic Element doSomething(Element foo) {} }class E extends D implements C {@Overridepublic Element doSomething(Element foo)...

java – 如何使用泛型的循环使它更通用?【代码】

这些是我的项目的类.Bean类是Employe和Computer的超级类型,并不是无法使用的.abstract Class Bean{private HashMap<String, String> fields = null;protected Bean(Map<String, Object> row) {//fill HashMap fields} } public class Employe extends Bean {public Employe (Map<String, Object> row) {super(row);} }public class Computer extends Bean {public Computer (Map<String, Object> row) {super(row);} }如何使用泛型...

java – 在Spring MVC中使用@RequestBody的泛型类型时出现“参数类型不匹配”错误【代码】

我正在尝试为Spring MVC实现一个通用的REST控制器:public abstract class GenericRestController<T extends GenericEntity> {protected final GenericService<T> service;public GenericRestController(GenericService<T> service) {this.service = service;}@RequestMapping(method = RequestMethod.GET)@ResponseStatus(HttpStatus.OK)public List<T> list() {return service.list();}@RequestMapping(method = RequestMethod.P...

java – 在返回与其对象相同类型的值的final方法中使用泛型【代码】

考虑以下不可变类:A B extends A C extends B D extends C ...类A有一个名为process的方法,它获取一个类型为A的参数,然后返回一个调用对象类型的值:public class A {public final <T extends A> T process(A a) {Class clazz = getClass();T result = createObjectOfType(clazz);return result;}}public class B extends A { }public class C extends B { }这是(非常简单的)测试代码:public void test(){A a = new A();B b = ne...

为什么在Java泛型右手边的集合类型没有任何影响?【代码】

使用Java的Generics功能我创建了一个List对象,在左侧我使用的是原始类型List,在右侧我使用的是泛型类型ArrayList<字符串>.List myList=new ArrayList<String>();我在list对象中添加了一个int值.myList.add(101);我希望我会得到一些编译错误但是这个程序运行正常.但是如果我使用泛型类型List<字符串>在左侧和右侧的原始类型ArrayList并尝试将int值添加到列表中,我按预期收到编译错误.List<String> myList=new ArrayList(); myList.a...

java – 尝试获取泛型类时的ClassCastException【代码】

我试图使用this answer中给出的代码.我这样做了:public class ListClass<T> {private class ObjectFactory<T> {//This should the the class of generic type T which is what I needpublic final Class<T> cls;@SuppressWarnings ("unchecked")public ObjectFactory(){//This three lines are from the linked answer - I don't really understand themType type = getClass().getGenericSuperclass();ParameterizedType paramTy...

java – Android AsyncTask,警告:“为varargs参数创建未经检查的泛型数组”【代码】

我如何摆脱警告?我正在使用的代码:private void tryNew(List<Something> somethingList){new AsyncTask<List<Something>,Void,Void>(){@Overrideprotected Void doInBackground(List<Something> [] somethingList) {//some codereturn null;}}.execute(somethingList); }解决方法:我有同样的警告,可以通过使用我在execute方法的参数上使用的对象来删除它,没有泛型.对不起我的英语不好,但我会尽力解释一下. 而是以这种方式创建我的...

java – 返回泛型类型的交集【代码】

我想让一个函数返回一个保证实现两个接口的对象.在编译时不一定知道确切的对象.我的代码看起来像:class HelloWorld {public interface A {}public interface B {}public static class C implements A, B {}public static class D implements A, B {}public static <T extends A & B> void g(T t) {}public static <T extends A & B> T f(boolean b) {if (b)return new C(); // Doesn't compilereturn new D(); // Doesn't compile...

java – 有没有办法通过使用泛型来避免instanceof?【代码】

我有一个过程,其中多个地方可以生成错误消息和成功消息,所以我想用一个类跟踪它们,然后在过程结束时,按不同的“类型”对消息进行分组.这些方面的东西:public class Message {String message;public Message(String message) {this.message = message;} }public class ErrorMessage extends Message {}; public class FileErrorMessage extends ErrorMessage {}; public class OkMessage extends Message {};等等. (为了清楚起见,我...

Java中的泛型方法应该具有什么签名,以便它可以接受任何>和……?【代码】

我想创建一个遍历任何存储ArrayList< U>的集合的方法. – 让我们称之为收集T;例如,它可以是LinkedList,ArrayList或任何其他Collection; U – 是另一种需要记忆的类型;我想要创建的方法应该返回相同的集合T但它应该存储LinkedList< U>代替. “错误的”希望声明:public <T extends Collection, U> T<LinkedList<U>> rewrap (T<ArrayList<U>> arrayList) {T<LinkedList<U>> linkedList = new T<LinkedList<U>>();// do some stuff h...

在Java中使用递归泛型时不兼容的类型【代码】

我写过java code,其中我使用递归形式的泛型来实现一种使Builder模式可继承的简洁方法. 这有效,但我不明白我从java编译器得到的一些警告和错误. 这是我不理解的部分的严重简化版本:package nl.basjes.test;public class Foo<X extends Foo<X>> {public X doSomething() {return this;} }对于“归还这个”;我收到了错误Incompatible Types Required: X Found : nl.basjes.test.Foo <X>现在’this’始终是Foo的子类(甚至是Foo本身)...