我有一个ArrayList,我需要确保一个特定的项目在0位置,如果不是,我需要将它移动到那里.该项目上有一个isStartItem布尔值,所以我可以很容易地找到我需要在0位置的特定项目,但是如何将其移动到正确的位置呢?
我假设我需要使用这样的东西:
for(int i=0; i<myArray.size(); i++){
if(myArray.get(i).isStartItem()){
Collection.swap(myArray, i, 0);
}
}
Run Code Online (Sandbox Code Playgroud)
但这似乎不起作用......
我有一个列表视图,当用户按下按钮时,我想收集按钮的坐标,并在屏幕上放置一个我在其顶部充气的编辑文本.当用户点击屏幕上的任何其他位置时,edittext将消失,它将触发一个方法,该方法使用用户在框中输入的数据.我该怎么做这样的事情?我想要类似于QuickActions的东西,但不是那么具有侵入性.有人能指出我至少如何获得按钮坐标?
是否可以使用JSTL从arraylist获取"row"索引?
<c:forEach items="${searchResults}" var="contact">
<div style="padding: 5px;">
${contact.firstName} ${contact.lastName}
<br>
${contact.primaryPhone}
</div>
</c:forEach>
Run Code Online (Sandbox Code Playgroud)
我的目的是设置一个包含每行上每个项ID的超链接,这样用户就可以单击并显示一个弹出窗口或另一个页面,只需从arraylist中轻松检索单个对象,而无需返回数据库并设置另一个会话对象等.
我试图最大限度地重用一些代码.在我的自定义javascript对象上(为了简单起见,我将使用PhoneNumber作为示例),我正在设置这样的原型函数:
var Map = {
write: function() {
alert('My object is ' +this);
}
};
function PhoneNumber(number) {
this.number = number;
}
PhoneNumber.prototype = Map;
//I can call the write function like so
var phoneObject = new PhoneNumber('1234567894');
phoneObject.write(); //ALERT My Object is Object{number:'1234567894'}
Run Code Online (Sandbox Code Playgroud)
一切正常,除了由于某种原因它将我的电话号码对象变成通用对象而不是保持其PhoneNumber构造函数.如果我实际上将write函数放在这样的对象原型中,它就可以完美地工作.
function PhoneNumber(number) {
this.number = number;
}
PhoneNumber.prototype.write = function() {
alert('My object is ' +this);
}
var phoneObject = new PhoneNumber('1234567894');
phoneObject.write(); //ALERT My object is PhoneNumber{number:'1234567894'}
Run Code Online (Sandbox Code Playgroud)
但我真的不必这样做,因为多个对象使用write函数,它们都执行完全相同的方式.如何避免我的对象转换为通用构造函数?显然我正在以错误的方式在原型上设置Map对象,但是非常重要的是我不必将代码直接从Map复制到对象原型函数中.有任何想法吗?
我理解这些是必要的......当然要编写正确的代码,但是有没有一种设计模式可以帮助避免在类中重复尝试... catch块?例如,我编写了一个抛出5个不同异常的特定类.
public void iterateComparatorResults(ArrayList<ComparatorValue> results) throws IOException, IllegalArgumentException, IntrospectionException, IllegalAccessException, InvocationTargetException {
Iterator<ComparatorValue> iterator = results.iterator();
for(int i=0; i<results.size(); i++) {
//Set data variables.
setBeans(results.get(i).getClientBean(), results.get(i).getServerBean());
setValues(results.get(i).getClientValue(), results.get(i).getServerValue());
if(results.get(i).isMatch()) {
//Data matches.
runIteratorTrueAction();
} else if(results.get(i).getInnerBeans() != null){
//Value is a nested bean. Iterate again.
ArrayList<ArrayList<ComparatorValue>> innerResults = results.get(i).getInnerBeans();
for(int r=0; r<innerResults.size(); r++) {
iterateComparatorResults(innerResults.get(r));
}
} else {
//Data does not match.
runIteratorFalseAction();
}
}
}
Run Code Online (Sandbox Code Playgroud)
每次我引用这个特定的方法是任何其他类,我必须使用看起来像这样的try catch块.
try {
beanComparator.setIteratorFalseAction(falseAction);
beanComparator.iterateComparatorResults(beanComparator.compareBeans(contact, compareContact));
} catch (IllegalArgumentException e) { …Run Code Online (Sandbox Code Playgroud) 为了我自己的教育,我想构建一个简单的依赖注入框架,其功能类似于Google的Guice.因此,当加载类时,它会使用工厂类中的数据预填充带注释的字段.
我在编译时使用Reflections来扫描我的所有工厂类,并将这些类保存在静态列表中,以便在加载我的类时,我可以参考我的工厂,然后我可以扫描方法并返回相应的数据.
我坚持的地方是如何预先填充我的类注释字段,而不实际在实际的类中进行任何工作.换句话说,当加载类时,我需要能够确定是否有任何字段使用特定注释进行注释,如果是,则从工厂类中检索值.
是否有某种方法在加载之前对类执行反射,预先填充特定字段,然后返回要使用的类的实例?
我可以扩展所有需要依赖注入的类和一个完成所有这些工作的基类,但我认为必须有一个更好的方法,以便我可以简单地使用@Inject(或我决定使用的任何注释来说这个领域需要DI)并"神奇地"完成所有工作.
两者有区别吗?他们执行相同的任务吗?
我有点困惑,因为我对电子邮件服务器不太熟悉,但我正在尝试构建一个主要用于发送事务电子邮件的服务器,Java并且关于Apache James. 目前我确实可以正常运行它,但是我在DKIM正常使用它时遇到了问题,这种挫败感让我考虑进行更改。
那么……Postfix合适的Apache James替代品吗?Postfix除了从 发送电子邮件之外,我还需要其他什么吗Java?
我理解为IE处理event.stopPropagation的正确方法是
if(event.stopPropagation) {
event.stopPropagation();
} else {
event.returnValue = false;
}
Run Code Online (Sandbox Code Playgroud)
但是有可能对Event进行原型设计,这样我每次使用stopPropagation时都不需要进行检查吗?
这个问题似乎很有帮助:IE8中的JavaScript事件原型然而我并不完全理解接受的答案以及它如何成为一个基本上可以设置和忘记的原型.
似乎默认情况下 javascript 使用双引号附加属性。但是,在我的情况下,我试图将 json 字符串附加到数据属性,而双引号会干扰 json。
var json = {"foo":"bar"}
var el = document.getElementById("someElement");
el.setAttribute("data-json", JSON.stringify(json)); //<div data-json="{"foo":"bar"}">
Run Code Online (Sandbox Code Playgroud)
如何使用单引号附加属性?
我有一个由接口定义的类
public interface Test {
void testMethod();
}
Test test = new TestImpl();
public class TestImpl implements Test {
@Override
public void testMethod() {
//Nothing to do here
}
public void anotherMethod() {
//I am adding this method in the implementation only.
}
}
Run Code Online (Sandbox Code Playgroud)
我该如何调用anotherMethod?
test.anotherMethod(); //Does not work.
Run Code Online (Sandbox Code Playgroud)
我希望能够在实现中定义一些方法,因为在我的生产代码中,Test接口涵盖了相当广泛的类,并由多个类实现.我使用实现中定义的方法来设置单元测试中DI框架未涵盖的依赖关系,因此方法从实现变为实现.
java ×4
javascript ×3
android ×2
arraylist ×2
annotations ×1
collections ×1
guice ×1
interface ×1
james ×1
jsp ×1
jstl ×1
methods ×1
postfix-mta ×1
swap ×1
try-catch ×1
upcasting ×1
window ×1