我有一个定义良好的界面的应用程序。 它使用CDI来parsing模块,(具体来说,它使用API接口上的实例<>注入点来parsing模块),并通过接口传回各种数据。 我有意将API和实现保持分开,并且模块只从APIinheritance以避免紧耦合,应用程序只通过运行时依赖知道模块,并通过API完成数据传递。 应用程序在没有模块的情况下运行正常,只需将jar放入WEB-INF / lib文件夹并重新启动应用程序服务器即可添加。 我遇到的问题是我希望模块创build视图的一部分,因此我希望以可移植的方式调用JSF组件,或者从模块中进行包含以获得它呈现其视图。 我已经解决了我想要调用的模块,并准备好引用模块的接口。 我最初的想法是做一个ui:包含要求模块提供视图模板的地方,但我不知道如何以有意义的方式回答该查询,因为视图分辨率是从应用程序完成的根,而不是图书馆的根。 执行摘要是我不知道如何使用JSF for .xhtml(模板/组件)文件跳过从应用程序到库的差距。 使用CC会很好,但是如何在运行时指定我需要特定的CC实例,而不是将其硬编码到页面中? 我当然可以直接调用应用程序代码,并要求它提供标记,但是这看起来非常暴躁,一旦我有了标记,我不确定如何告诉JSF来评估它。 也就是说,我可以想象一个组件,将采取资源path,抢标记和评估,返回完成的标记,我只是不知道如何实现。 如果可能的话,我宁愿避免强迫模块开发人员去使用繁重的UIComponent方法,这意味着要么采取一种dynamic的方式来执行ui:include(或一些等效)或者dynamic调用CC的方式。 (我不介意在应用程序中编写UIComponent方法ONCE,如果这使得模块开发人员的生活更容易) 有什么build议,我应该看看这个了? (如果我先find答案,我会在这里发表答案)
find一个有趣的JVM标志: java -XX:+UnlockDiagnosticVMOptions -XX:+PrintFlagsFinal -version 它打印数以百计的各种选项,我从来没有听说过。 它还打印默认值,这有助于更好地诊断JVM行为。 另一个有趣的标志是: -XX:+UnlockExperimentalVMOptions 有没有人知道解释每一个他们的任何文件?
我试图打印List所有元素,但它是打印Object的指针而不是值。 这是我的打印代码… for(int i=0;i<list.size();i++){ System.out.println(list.get(i)); } 任何人都可以请帮助我为什么不打印元素的价值。
有什么区别 1.List<Integer> list1 = new ArrayList<Integer>(Arrays.asList(ia)); //copy 2.List<Integer> list2 = Arrays.asList(ia); ia是整数数组。 我知道有些操作在list2是不允许的。 为什么这样呢? 它如何存储在内存(引用/副本)? 当我洗牌的列表, list1不会影响原来的数组,但list2做。 但是list2还是有些混乱。 如何将ArrayList升级为列表与创build新的ArrayList不同 list1 differs from (1) ArrayList<Integer> list1 = new ArrayList<Integer>(Arrays.asList(ia));
我听说Generics的Java实现不如C#实现。 在这个语法看起来相似的情况下,这个Java实现是不合标准的,还是它是一个宗教观点?
我发现JUnit的正确使用(或至less文档)非常混乱。 这个问题既可以作为未来的参考,也可以作为一个真正的问题。 如果我理解正确,创build和运行JUnittesting主要有两种方法: 方法A(JUnit 3样式):创build一个扩展TestCase的类,并用test这个词开始testing方法。 在JUnit Test(在Eclipse中)运行类时,所有以word test开头的方法都会自动运行。 import junit.framework.TestCase; public class DummyTestA extends TestCase { public void testSum() { int a = 5; int b = 10; int result = a + b; assertEquals(15, result); } } 方法B(JUnit 4样式):创build一个“普通”类,并在该方法前加上一个@Test注解。 请注意,您不必使用单词test来启动该方法。 import org.junit.*; import static org.junit.Assert.*; public class DummyTestB { @Test public void Sum() { […]
在Java 8中,方法可以创build为Lambdaexpression式,并且可以通过引用传递(在引擎下进行一些工作)。 在线创build和使用lambdaexpression式的例子很多,但没有例子说明如何创build一个以lambda为参数的方法。 这是什么语法? MyClass.method((a, b) -> a+b); class MyClass{ //How do I define this method? static int method(Lambda l){ return l(5, 10); } }
我在我的项目中写了这样的Javadoc风格的评论: /** * Description… * * @param … * @return ….. */ 如何从Eclipse生成Javadoc HTML?
谁能告诉我如何得到没有扩展名的文件名? 例: fileNameWithExt = "test.xml"; fileNameWithOutExt = "test";
是否有可能传递参数,或访问外部参数到一个匿名类? 例如: int myVariable = 1; myButton.addActionListener(new ActionListener() { public void actionPerformed(ActionEvent e) { // How would one access myVariable here? } }); 是否有任何方法让侦听器访问myVariable或传递myVariable而不创build侦听器作为实际的命名类?