【Java泛型通配符 ? 与 T 的区别】教程文章相关的互联网学习教程文章

java – 如何使用“动态优化导入”选项来阻止Android Studio删除通配符导入【代码】

如果使用编辑器>如何阻止Android Studio使用通配符删除导入?一般>自动导入>是否启用了优化导入选项? 在使用此选项的示例中,我的所有测试都会在我可以使用之前删除junit.Assert导入import static org.junit.Assert.*;解决方法:虽然不建议使用通配符导入,但如果您在编辑器中修改设置,则可以使用它.代码风格> Java>导入只需将Class Count值设置为2或3.

在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泛型通配符和类型参数的范围

本节先讲解如何限制类型参数的范围,再讲解通配符(?)。 类型参数的范围 在泛型中,如果不对类型参数加以限制,它就可以接受任意的数据类型,只要它是被定义过的。但是,很多时候我们只需要一部分数据类型就够了,用户传递其他数据类型可能会引起错误。例如,编写一个泛型函数用于返回不同类型数组(Integer 数组、Double 数组等)中的最大值: public <T> T getMax(T array[]){ T max = null; for(T element : array){ max = eleme...

使用通配符的Java自引用泛型【代码】

是否可以指定未知泛型类型是自引用的? 尝试失败:import java.util.*;class Generics {public enum A { A1, A2 }public enum B { B1, B2 }public static List<? extends Enum<?>> listFactory(String[] args) {if (args.length == 0) {return new ArrayList<A>(Arrays.asList(A.A1, A.A2));} else {return new ArrayList<B>(Arrays.asList(B.B1, B.B2));}}public static void main(String[] args) {List<? extends Enum<?>> lst =...

java 声明多个泛型类型和通配符

若一个类中多个字段需要不同的泛型声明,则在声明类的时候指定多个泛型类型即可; 格式: public interface IDAO<PK, T> { PK add(T t); void remove(PK id); void update(PK id, T t); T get(PK id); } 在进行引用传递的时候泛型类型必须匹配才可以传递,否则编译不通过; 使用? ,表示未知类型的泛型对象: List<?> 表示未知元素的List集合; 这种带通配符的List仅表示各种泛型Li...

结合使用Java中的方法和接收器类型中的通配符【代码】

我试图在接收器的类型和Java中的方法的参数类型中使用通配符的组合.上下文是定义容器的上下文.现在,类型Container不应该允许任何插入,因为此类型不指定包含的对象的类型.但是,如果底层数据结构允许,则应该有一种方法来搜索类型为T的对象,或者任何其他类型的对象. 这是一个演示此问题的代码段.关于如何在Java中实现这个设计目标的任何想法?public class Main { public static class Container<T extends Item> {public void insert...

java – 隐式类型和通配符【代码】

在this topic我遇到了牵连类型. 问题1. Java中隐式类型的强有力捍卫或非正式概念是什么?我可以手动定义隐式类型吗?所有隐式类型是否相同都是真的吗?什么是编译器的隐式类型? 以下代码示例:List<? extends Number> nums= new ArrayList<Integer>(); nums.add(3);//error我知道我们可以分配给nums引用ArrayList< Double>. 问题2.在这方面? extends Number是隐式类型,由CAP#1定义.编译器是否确实知道只有null是这种隐式类型的实...

java – activemq通配符消费者如何工作?【代码】

我正在使用ActiveMQ 5.8与在camel路由中配置的通配符使用者. 我使用默认的ActiveMQ配置,所以我有如下默认值prefetch = 1 dispatch policy= Round Robin现在我启动一个消费者jvm,每个消费者有2个队列,每个消费者有2个.队列具有相同类型的消息和相同数量的消息. 消费者除了打印消息之外什么都不做(所以没有数据库阻塞或消费者问题缓慢) 编辑我为每个队列设置了preFetch为1 我观察到的是其中一个排队比其他排队更快. 我所期待的是队列...

java – 嵌套通配符【代码】

发现了一些让我烦恼的无界通配符的事实.例如:public class Test { private static final Map<Integer, Map<Integer, String>> someMap = new HashMap<>();public static void main(String[] args) {getSomeMap(); }static Map<?, Map<?, ?>> getSomeMap() {return someMap; //compilation fails} }它失败了,虽然适用于Map<?,?>或Map<?,Map< Integer,String>>返回类型. 有人能告诉我确切的原因吗???提前致谢. 更新 在我看来,似...

Java Spring:需要通配符@RequestMapping来匹配所有BUT / images / *以及对原始URL的访问权限【代码】

我是Spring的新手,接管使用@RequestMapping的各种路由的现有代码.但是,由于新功能请求的复杂性,绕过Spring路由机制以使单个通配符操作方法与资产目录的所有可能URL匹配除外更容易: 匹配这些:(empty)//anything/you/can/throw/at/it?a=b&c=d但不是:/images/arrow.gif/css/project.css我的各种尝试要么根本不匹配,要么匹配但只捕获一个单词而不是整个原始URL:@RequestMapping(value="{wildcard:^(?!.*(?:images|css)).*\$}", met...

java – 复杂类型中的通用通配符bounderies【代码】

参见英文答案 > Java HashMap nested generics with wildcards 3个我不明白generic wildcard bounderies ussage.你能解释一下为什么processList工作得很好,而processMap在下面的例子中失败并出现编译错误?我应该如何更改processMap的签名以使其适用于Map< String,List< String>>和Map< String,List< Object>>public void processList(List<? extends Object> list) { }public void processMap...

下限通配符Java – 访问方法【代码】

我理解,存在低限通配符的一个原因是,在添加新元素时,集合不是不可变的. 例如.List<? extends Number> obj = new ArrayList<>();//Now this list is immutable obj.add(new Integer(5));//Does not compile List<? super Number> objTwo = new ArrayList<>();//This list is mutable objTwo.add(new Integer(5));//Compiles以下不编译因为我试图得到数字的长值. Q1:我可以使用哪些方法?只有Objects方法?:public void testLowerB...

Java中通配符泛型的继承【代码】

既然我们能做到ArrayList<?> l = new ArrayList<Integer>();我们可以说ArrayList<?>是ArrayList的超类< Integer> ?上面的例子是否描述了多态性? 更新:通常,如果A< T> B是超T类的T>. , 然后A<?> obj = new B<Integer>();然后说A<?>是正确的.是超级B<整数> ?解决方法:TLDR:Can we say ArrayList<?> is superclass of ArrayList<Integer> ?不,但我们可以说它是ArrayList的超类型<整数>Then is right to say A<?> is super clas...

java – 为什么这个通配符有效?【代码】

我对这个代码感到困惑,这个代码应该不起作用(我猜),但似乎没有错误. 当我把< T>在Person类旁边,Arraylist中的通配符的行为不像它定义的那样,在下面的代码中,通配符应仅适用于超级Person类,但使用< T>在Person类旁边,它接受所有类型的类型(在这个例子中它是String).并且为了使其起作用,人员在定义时不应该具有指定的类型.这是代码:import java.util.ArrayList;public class Person {public static void main(String[] args) {Human...

Java – 无法导入com.package.*(通配符)【代码】

这可能是一个简单的问题,但谷歌一无所获. 我看过Help with packages in java – import does not work 我仍然不明白为什么直接导入会起作用但是通配符不会.[编辑]通过类包我的意思是一个类包.我还是Java的新手,所以我不知道语义[编辑] 我有一个类包:com.company.functions,当我尝试导入com.company.*我收到以下错误.java: package com.company does not exist如果我显式导入com.company.function,那么我没有问题. 所以我想我有一个...