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

java-泛型类型和toArrayMethod【代码】

我有一班MyStack< T>它定义了以下内容public T[] toArray(){int s=size();@SuppressWarnings("unchecked")T[] result=(T[])new Object[s];Node n=first;for (int i=0; i<s; i++){result[i]=n.data;n=n.next;}return result; }由于这将返回类型T的数组,因此我认为如果声明了此实例:MyStack< String> s = new MyStack<&gt ;,以下将是完全有效的:String [] test = s.toArray().我认为这是因为s的类型为String,所以toArray应该返回St...

java-如何使用Guice使Multibinder与FactoryModuleBuilder和泛型一起使用?【代码】

我读过Google guice – multibinding + generics + assistedinject,但它似乎无法解决我的特定情况.这是我所拥有的: 与FactoryModuleBuilder一起使用的接口public interface IFilterFactory<T extends IFilter> {T create(FilterConfig config); } public interface IFilterOneFactory extends IFilterFactory<FilterOne> {} public interface IFilterTwoFactory extends IFilterFactory<FilterTwo> {}我的Guice模块:@Override pr...

java-根据实现中使用的泛型(应用类型)使用接口的一种实现【代码】

我有两个界面.一个接口包含信息,第二个接口应该使用第一个接口.第二接口具有一个或多个泛型,该泛型必须是第一接口的实现. 我想根据收到的第一个接口的实现情况自动使用第二个接口的实现情况. 让我展示一下界面. (我更改了域名并简化了域名,但是您有了基本的想法.)//This contains information needed to publish some information //elsewhere, on a specific channel (MQ, Facebook, and so on) public interface PubInfo {String...

java-使用HK2在泛型类中注入类型参数【代码】

我目前正在使用HK2 2.5.0-b05(泽西岛2.24使用的版本),并且无法执行特定类型的注射.我得以概括我的问题,并提出了一个简单的小型测试用例. 代码如下:package com.github.fabriziocucci.test;import javax.inject.Inject;import org.glassfish.hk2.api.ServiceLocator; import org.glassfish.hk2.api.ServiceLocatorFactory; import org.glassfish.hk2.api.TypeLiteral; import org.glassfish.hk2.utilities.ServiceLocatorUtilities...

不兼容类型的泛型Java【代码】

我做了这段代码:import java.util.LinkedList;public class Node<T> { private T data; private LinkedList<T> children; public Node(T data) {this.data = data;this.children = new LinkedList<T>(); } public T getData() {return this.data; } public LinkedList<T> getChildren(){return this.children; } }public class Graph <T> implements Network<T> { private Node source; private Node target; private ArrayList<N...

具有泛型和泛型集合的Java重载方法【代码】

具有这两种方法的接口:void add(T result); void add(List<T> result);我期望Java在运行时会调用适当的方法:final U result = getResult(); myInterface.add(result);如果U是一个列表,我想第二个方法将被调用,但总是第一个方法被调用.为什么会这样呢?实现该目标的正确方法应该是什么?解决方法:这取决于U的编译时类型.如果U是无界的,则编译器无法确定它是List还是String还是您的Hilda姨妈.因此,“未通电”代码变为:final Objec...

Java泛型:如何删除冗余参数【代码】

请帮助我处理这种情况. 我有一个抽象类BasicCommand:public abstract class BasicCommand<RequestT, ResponseT> {protected Collection<ResponseT> execute(RequestT request) {return Something;} }我有一个包含两个对象的RequestContext类:public class RequestContext<RequestT> {private RequestT requestT;private HttpRequest httpRequest; }现在,我想扩展我的BasicCommand,该请求的参数化为RequestContext,响应参数化为Re...

java-如何为每个泛型类型创建一个新的bean实例?【代码】

所以我有我的学科课:@Component public class Subject<T extends Monitorable> {@Autowiredprivate List<Observer<T>> observers;public void fireListeners(T monitorable){for (Observer<T> observer : observers) {observer.doSome(monitorable);}} }这是为Monitorable的每个实现创建新的主题实例的方法,例如:@Autowired private Subject<Trip> tripSubject;行程是可监控的,它有自己的观察者@Autowired private Subject<Truck...

如何从Java实例化Scala中定义的嵌套泛型类?【代码】

我正在尝试从Java实例化嵌套的通用Scala类,并遇到此编译错误.有人可以帮忙吗?谢谢 external.scala:class Outer {class Inner[A] }sctest.java:public class sctest{public static void main(String[] args) {Outer o = new Outer();Outer.Inner<String> a = o.new Inner<String>();} }$javac sctest.javasctest.java:4: error: constructor Inner in class Outer.Inner cannot be applied to given types;Outer.Inner a = o.new...

java-Mockito模拟when()用于不同类型的两个泛型方法【代码】

我有类Generic< T,R>的两个泛型对象:Generic<TypeA, TypeB> genericOne; Generic<TypeB, TypeC> genericTwo;我必须嘲笑:when(someObject.someMethod(Matchers.<Generic<TypeA, TypeB>>any())).thenReturn(responseOne());when(someObject.someMethod(Matchers.<Generic<TypeB, TypeC>>any())).thenReturn(responseTwo());问题在于,由于类型擦除,mockito不会看到这两个方法调用之间的区别-它们都被识别为Generic< T,R>.类. 有什么...

java-未检查的从X转换为扩展X的泛型类型【代码】

我的任务是在我们的代码库中删除尽可能多的@SupressWarnings,但我不确定如何解决此特定问题. 我有此外部方法返回一个Serializable对象,并且通用类型T扩展了我想将对象投射到的Serializable. 这是代码的简化版本:class A <T extends Serializable> {public T someMethod() {Serializable result = someExternalMethod(...);T convertedObject = (T) result; // produces unchecked cast warningreturn convertedObject;} } 是否可以...

《Data Structure and Algorithm Analysis in Java》中Java语言的重要特点 - 实现泛型构件 pre-Java 5

面向对象的一个重要目标就是对代码重用的支持。支持这个目标的一个重要机制就是泛型机制(generic mechanism):如果出去对象的基本类型外,实现方法是相同的,就可以用泛型实现(generic implementation)来描述这种基本功能。在Java 1.5版本以前,Java并不直接支持泛型实现,泛型编程的实现是通过使用继承的一些基本概念来完成的。 1、 使用Object表示泛型 Java中的基本思想就是通过使用像Object这样适当的超类来实现泛型。 pu...

在Eclipse外部构建时的Java泛型代码编译问题【代码】

我已经为一个非常小的GWT项目配置了Maven构建.从Eclipse进行编译/运行不会造成任何问题,但是当我执行Maven构建时,我在一个地方就遇到了编译问题(这是GWT的“客户端”代码,但是我不确定是否是这种情况). Maven /编译输出:[..]SmartTable.java:[63,52] ')' expected [..]SmartTable.java:[63,53] ')' expected [..]SmartTable.java:[63,69] ';' expected [..]SmartTable.java:[63,71] not a statement [..]SmartTable.java:[63,77] ...

java-类型安全性:未经检查的强制转换和泛型【代码】

我有一张非常简单的地图private Map<String,T> map = Collections.synchronizedSortedMap(new TreeMap<String,T>());我想定义以下方法public T[] values(){return (T[])map.values().toArray(); }显然,我最终遇到了一个未经检查的强制转换问题…我的问题是我无法调用toArray(new T [size]). 我应该怎么做才能避免出现此警告(不使用@SuppressedWarning) 谢谢解决方法:避免使用数组.返回列表< T>. 数组是必要的基本构建块,但是在类型...

Java泛型集合的疑问【代码】

我在使用泛型时遇到麻烦.我定义了以下静态方法:public static <E extends Number> List<E> group(E ... numbers) {return Arrays.asList(numbers); }我了解为什么这样做:List<Integer> ints = group(1, 2, 3);但是我必须更改我的方法签名才能完成此工作:List<Number> ints = group(1, 2, 3);或者我应该只调用将Number类型指定为的组方法:List<Number> ints = MyClass.<Number>group(1, 2, 3);提前致谢.解决方法:如建议的那样,您...