我正在阅读OracleDocGenericMethod中的泛型方法.当它说何时使用通配符以及何时使用通用方法时,我对比较感到非常困惑.引用文件.
Run Code Online (Sandbox Code Playgroud)interface Collection<E> { public boolean containsAll(Collection<?> c); public boolean addAll(Collection<? extends E> c); }我们可以在这里使用泛型方法:
Run Code Online (Sandbox Code Playgroud)interface Collection<E> { public <T> boolean containsAll(Collection<T> c); public <T extends E> boolean addAll(Collection<T> c); // Hey, type variables can have bounds too! }[...]这告诉我们类型参数被用于多态; 它唯一的作用是允许在不同的调用站点使用各种实际的参数类型.如果是这种情况,则应使用通配符.通配符旨在支持灵活的子类型,这是我们在此尝试表达的内容.
难道我们不认为外卡(Collection<? extends E> c);也支持那种多态?那为什么泛型方法的使用被认为不好呢?
继续向前,它说,
通用方法允许使用类型参数来表示方法和/或其返回类型的一个或多个参数的类型之间的依赖关系.如果没有这种依赖关系,则不应使用通用方法.
这是什么意思?
他们提出了这个例子
Run Code Online (Sandbox Code Playgroud)class Collections { public static <T> void copy(List<T> dest, List<? extends T> src) { ... }[...]
我们可以用另一种方式为这种方法编写签名,而不使用通配符:
Run Code Online (Sandbox Code Playgroud)class Collections { public static <T, S extends …
我正在阅读第一个JSP和servlet.通过不同类型的听众去,我碰到HttpSessionBindingListener和HttpSessionAttributeListener.
我在考虑两者之间的区别 - 我希望看到这两位听众在现实世界中的实际用法.我测试HttpSessionBindingListener的实施valueBound()和valueUnBound()-为什么会一个对象需要知道它是否已被添加或不呢?
我对实际用法感到很困惑.请帮助澄清一下.
我binding在以下问题中阅读了有关属性的组件绑定:
据我所知,它将视图中JSF标记后面的UI组件绑定到UIComponent辅助bean中的属性.但是,我很困惑组件绑定的用途以及何时应该使用它.有人可以用更简单的方式解释它并给出一些实际的例子吗?
我们正在尝试使用JMeter进行性能测试.
我使用HTTP PROXY SERVER提供的jmeter中提供的示例指南但我的记录控制器没有记录任何请求.
在做了大量的研究之后,这就是完整的场景.
我正在使用公司代理服务器访问外部站点.因此,经过一些研究,我明白我需要通过命令行提供所有信息来启动我的jmeter.例如
jmeter -H 129.198.1.1 -P 8000 -u someusername -a someuserpassword -N localhost
Run Code Online (Sandbox Code Playgroud)
现在我明白了,我不需要混淆这些设置.默认情况下,JMETER使用自己的内部代理服务器.
我们需要配置我们的浏览器,以便它使用jmeter代理设置,我这样做.
我添加了一个线程组,一个记录控制器,带有url的http代理服务器包含模式和排除模式,但仍然无法记录任何脚本.
我究竟做错了什么?有人可以帮我吗?
我一步一步地使用了文档JMeter代理,它与JMETER文档捆绑在一起.这是我的配置



我正在通过JLS第9.3.1节,我遇到了一个有趣的继承领域的概念.这是JLS的示例
interface BaseColors {
int RED = 1, GREEN = 2, BLUE = 4;
}
interface RainbowColors extends BaseColors {
int YELLOW = 3, ORANGE = 5, INDIGO = 6, VIOLET = 7;
}
interface PrintColors extends BaseColors {
int YELLOW = 8, CYAN = 16, MAGENTA = 32;
}
interface LotsOfColors extends RainbowColors, PrintColors {
int FUCHSIA = 17, VERMILION = 43, CHARTREUSE = RED+90;
}
Run Code Online (Sandbox Code Playgroud)
它允许继承模糊字段.但是当我尝试引用该字段并访问它时,它会产生编译时错误.为ambigious字段提供编译时错误.我的问题是,第一点为什么编译器在继承了这个野蛮的领域时没有抱怨.为什么在访问时,它给出了这个问题?如果我们在使用类时也这样做,它允许.为什么不在接口的情况下.我的观点是它不应该只在第一时刻允许.澄清这个概念将非常有帮助.
我已经决定完全深入研究JSF 2.0,因为我的项目需要深入了解它.我正在阅读JSF Lifecyle Debug,这是一篇关于JSF生命周期的精彩文章.在阅读本文时,我有以下混淆.
如果是初始请求,Restore View Phase则会在空视图中创建并直接Render Response Phase发生.此时没有可以保存的州.render response phase那时究竟发生了什么?我在运行这个例子时感到很困惑.
该文章指出,检索输入值被设置在inputComponent.setSubmittedValue()在Apply Request Values相位.如果验证和转换通过,则设置值inputComponent.setValue(value)并inputComponent.setSubmittedValue(null)运行.在同一篇文章中指出,现在如果在下一个回发请求中,值被更改,则将其与提交的值进行比较,该值在每个帖子后面将始终为null,alue change listener将调用v .这意味着,如果,我们不更改值,因为submittedValue将为null,将始终调用valueChangeListener?我对此声明感到困惑.有人可以详细说明吗?
文章陈述了immediate属性的用法.如果immediate在输入组件上设置了属性,则理想情况下Process Validation Phase会跳过该属性,但会进行所有转换和验证Apply Request Values.我的观点是,仍然在转换和验证发生时,跳过第三阶段的优势是什么?
该术语检索值的含义是什么?
我想知道,如果让我们说视图上有五个字段.JSF是否列出了这些值的某些集合,Apply Request Values并Process Validations逐步对它们进行迭代?
在本文的最后一点说明,何时使用immediate属性.根据我的理解,如果在输入组件和命令组件中都设置了immediate属性,那么对于没有的任何属性,它将跳过从Apply Request Values to Invoke Application的阶段immediate.那么最后一个语句在登录表单中是什么意思是"忘记密码"按钮,其中包含必需的即时用户名字段和必需但非直接的密码字段.
我知道这些是非常基本的混淆,但这些主题的明确性肯定有助于提高JSF知识.
我正在阅读并通过枚举实现场景.我想我们可以创建一个没有任何实例的枚举.这样的实际用途是Enum什么?其次Enum也可以实现一个接口,但显然不能扩展一个类,因为它已经扩展了类Enum.创建Enum没有实例的实际优势是什么?本
我正在阅读AngelikaLangerParametrizedTypeWorkAround.我确实理解了这里的许多概念,我确实理解什么是无界外卡参数化类型.虽然引用了参考文献,但它指出:
static void test() {
Pair<?,?>[] intPairArr = new Pair<?,?>[10] ;
addElements(intPairArr);
Pair<Integer,Integer> pair = intPairArr[1]; // error -1
Integer i = pair.getFirst();
pair.setSecond(i);
}
static void addElements(Object[] objArr) {
objArr[0] = new Pair<Integer,Integer>(0,0);
objArr[1] = new Pair<String,String>("",""); // should fail, but succeeds
}
Run Code Online (Sandbox Code Playgroud)
在无界通配符参数化类型的情况下,我们还限制了我们如何使用数组元素,因为编译器阻止了对无界通配符参数化类型的某些操作.本质上,原始类型和无界通配符参数化类型的数组在语义上与我们用具体通配符参数化类型的数组表达的数组非常不同.由于这个原因,它们不是一个好的解决方法,只有当阵列的优越效率(与集合相比)至关重要时才能接受.
我这里有两个具体问题.
有人可以解决这个问题吗?
我也许看到了这个问题的类似答案,但我觉得我的情况有所不同.我正在开发一个目前为止工作得很好的Spring MVC应用程序,就是我在我的项目中包含了hadoop api,当我包含hadoop时,当我尝试打开之前工作的初始仪表板页面时,此异常开始发生:
java.lang.AbstractMethodError: javax.servlet.jsp.JspFactory.getJspApplicationContext(Ljavax/servlet/
ServletContext;)Ljavax/servlet/jsp/JspApplicationContext;
org.apache.jsp.ServerInfo_jsp._jspInit(ServerInfo_jsp.java:63)
org.apache.jasper.runtime.HttpJspBase.init(HttpJspBase.java:52)
org.apache.jasper.servlet.JspServletWrapper.getServlet(JspServletWrapper.java:158)
org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:328)
org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:336)
org.apache.jasper.servlet.JspServlet.service(JspServlet.java:265)
javax.servlet.http.HttpServlet.service(HttpServlet.java:803)
org.jboss.web.tomcat.filters.ReplyHeaderFilter.doFilter(ReplyHeaderFilter.java:9
Run Code Online (Sandbox Code Playgroud)
以下是我的hadoop依赖关系的样子:
<dependency>
<groupId>org.apache.hadoop</groupId>
<artifactId>hadoop-client</artifactId>
<version>0.23.1-mr1-cdh4.0.0b2</version>
</dependency>
<dependency>
<groupId>org.apache.hadoop</groupId>
<artifactId>hadoop-core</artifactId>
<version>0.23.1-mr1-cdh4.0.0b2</version>
<exclusions>
<exclusion>
<groupId>org.mortbay.jetty</groupId>
<artifactId>jetty</artifactId>
</exclusion>
<exclusion>
<groupId>javax.servlet</groupId>
<artifactId>servlet-api</artifactId>
</exclusion>
</exclusions>
</dependency>
Run Code Online (Sandbox Code Playgroud)
一旦我将它添加到我的应用程序,它就不再可用了,当然没有这些依赖性,事情就会非常顺利.我在这里错过了什么?
假期后回来:)带问题.我从读可比接口文档 ComparableDocumentation.我明白,我们使用可比较的,因为它将为我们提供排序和自然排序.在文档中,它被写为.
强烈建议(尽管不要求)自然排序与equals一致.这是因为没有显式比较器的有序集(和有序映射)在与自然顺序与equals不一致的元素(或键)一起使用时表现得"奇怪".特别是,这样的有序集(或有序映射)违反了集合(或映射)的一般契约,它是根据等于方法定义的.
Comparable如何与equals相关.Comparable有compareTo方法和为什么它需要与equals方法一致?我无法理解这个概念.
同样引用消息来源,有人也可以详细说明这一点
例如,如果添加两个键a和b使得(!a.equals(b)&& a.compareTo(b)== 0)到不使用显式比较器的有序集,则第二个add操作返回false (并且有序集的大小不会增加)因为a和b从排序集的角度来看是等价的.
谢谢.