我必须使用一段旧代码,我有一个List,我需要迭代它.Foreach循环不起作用.哪种方法最好,最安全?
例
private void process(List objects) {
someloop {
//do something with list item
//lets assume objects in the List are instances of Content class
}
}
Run Code Online (Sandbox Code Playgroud) 我需要将一些类标记为Invokable - 只是告诉我可以使用反射调用类的方法.但我不喜欢为此目的而拥有一个空接口的想法.这可以通过注释完成并仍然保留下面示例中的行为吗?(我从未创建过自己的注释,因此我对它们并不深入了解)
Example
class ClassOne implements Invokable {
}
class ClassTwo implements Invokable {
}
void someMethod(Invokable inv) {
}
Run Code Online (Sandbox Code Playgroud) 我正在尝试将值添加到具有以下结构的多值HashMap:
Map< Integer, List<Float> > map = new HashMap< Integer, List<Float> >();
Run Code Online (Sandbox Code Playgroud)
我其实是想坚持一个特定项目(在Android上查看的信息对EG)的引用,所以Integer值HashMap将包含的项目ID是唯一的,List的Float旨意所包含的项X坐标值.用户可以在屏幕上有许多项目,他也可以有100个具有相同ID的项目,因此List将包含每个Items X坐标值.
为了更清楚,我的HashMap将包含以下数据
{1,{200,400.5,500.6 ...}},其中1是键,其余是ID为1的项的浮点值.
现在我添加List值如下...
List<Float> list = new ArrayList<Float>();
list.add(x_coord_1);
list.add(x_coord_2);
list.add(x_coord_3)
map.put(1, list);
Run Code Online (Sandbox Code Playgroud)
我现在面临的问题是弄清楚每次创建新ID时如何实例化新的List.
我将不得不为100个项目创建100个List,这是不可行的,不知道ID的数量.
有没有更好的方法来解决这个问题......
此外,我想找到一种方法从中删除特定键的特定值 HashMap
我想了解Java如何深入工作.所有教程都处于过高的水平,所以我有几个问题:
鉴于此代码:
class Example {
public void foo() {
int number = getRandomNumber();
System.out.println(number);
}
}
Run Code Online (Sandbox Code Playgroud)
假设在上面的示例中,该foo()方法可以由多个线程访问.每个线程是否都有自己的正确的number变量值,或者第二个线程是否可以修改第一个线程的值(因此它们都打印相同的值)?
如果int number最终会发生什么?
我想知道的主要事情是,当我有一些初始化(连接,...)时,我想确保线程不会相互干扰.
我@NotNull向托管bean 添加了一些validation(),突然出现了这个错误.什么可能导致它的想法?该应用程序在Apache Tomcat 7中运行.
javax.validation.ValidationException: Unable to find a default provider
javax.validation.Validation$GenericBootstrapImpl.configure(Validation.java:264)
javax.validation.Validation.buildDefaultValidatorFactory(Validation.java:111)
javax.faces.validator.BeanValidator.validate(BeanValidator.java:271)
javax.faces.component.UIInput.validateValue(UIInput.java:1127)
javax.faces.component.UIInput.validate(UIInput.java:941)
javax.faces.component.UIInput.executeValidate(UIInput.java:1189)
javax.faces.component.UIInput.processValidators(UIInput.java:691)
javax.faces.component.UIComponentBase.processValidators(UIComponentBase.java:1080)
javax.faces.component.UIForm.processValidators(UIForm.java:243)
javax.faces.component.UIComponentBase.processValidators(UIComponentBase.java:1080)
javax.faces.component.UIComponentBase.processValidators(UIComponentBase.java:1080)
javax.faces.component.UIViewRoot.processValidators(UIViewRoot.java:1180)
com.sun.faces.lifecycle.ProcessValidationsPhase.execute(ProcessValidationsPhase.java:76)
com.sun.faces.lifecycle.Phase.doPhase(Phase.java:101)
com.sun.faces.lifecycle.LifecycleImpl.execute(LifecycleImpl.java:118)
javax.faces.webapp.FacesServlet.service(FacesServlet.java:312)
Run Code Online (Sandbox Code Playgroud) 我想为每个表创建一个索引(确定XML中的位置),但问题是表的深度不同.我计划使用XSLT转换处理XML到FO.我有什么想法怎么做?
Sample XML
<document>
<table> ... </table>
<section>
<table> ... </table>
<subsection>
<table> ... </table>
</subsection>
</section>
</document>
Run Code Online (Sandbox Code Playgroud) 不幸的是,我的Enterprise Architect 7.5不能在SVG中导出,只能在EMF中导出(如果我想要矢量格式).我无法找到任何将EMF转换为SVG的免费转换器.你知道任何?其他可能的解决方案可能是Enterprise Architect的一些插件,它提供了这样的功能.
我有一个BASH脚本运行其他命令,我想让它们运行,以防主脚本停止.我试图运行这些命令,&但它没有帮助.难道我做错了什么?
我不确定哪种方式更好的设计表格.
有没有推荐的解决方案,还是我应该坚持自己喜欢的解决方案?
我想自动查找 EJB 实例并将其从 EJB 容器注入到列表中。例子:
@EJBs
List<MyCommonInterface> beans;
Run Code Online (Sandbox Code Playgroud)
或者
List<MyCommonInterface> beans;
public MyClass() {
beans = (List<MyCommonInterface>) context.findBeansByInterface(MyCommonInterface.class);
}
Run Code Online (Sandbox Code Playgroud)
这可能吗?