我不能在不使用:: notation的情况下创建供应商.所有教程似乎都在使用::来获取方法.
Function<String, Object> beanFactory = m_context::getBean;
Function<Void, IRCPublic> ircPublicSupplier = a -> (IRCPublic) beanFactory.apply("developerPublicConnection");
ircPublicSupplier.apply(null);
Run Code Online (Sandbox Code Playgroud)
我如何将第2行转换为单行语句来创建供应商,并且只需使用'.get()'.我可以使用'.apply(null)',但这看起来很脏.
谢谢!
我有一个ArrayList包含int[].
假设 Arrays.equals(int[], (a value in the arrayList)) = true
为什么我这样做arrayOfInts.contains(int[])是假的?
我认为这是因为同样的原因,(int[] == (a value in the arrayList)) = false但我应该得到这个错误?
我能以某种方式纠正它吗?
TL; DR:我可以将Arraylist.contains()用于int []
编辑:
答案(如果有人将来在这里搜索我作为解决方案的比较代码):
private boolean arraylistContains(int[] comparison, ArrayList<int[]> arrayListToCompare){
for(int[] values: arrayListToCompare){
if (Arrays.equals(comparison, values)){
return true;
}
}
return false;
}
Run Code Online (Sandbox Code Playgroud) 我的循环决定不结束.
使用我得到的输出下面的代码是:
operatorSize: 1
Check: 0
Check: 1
Exception in thread "main" java.lang.ArrayIndexOutOfBoundsException: 1
Run Code Online (Sandbox Code Playgroud)
码:
public int calculateResult(){
int opCounter = 0;
int operatorSize = calcOperators.size();
System.out.println("operatorSize: " + operatorSize);
for(int i = 0; i < operatorSize; i++){
for(int s = 1; i<3; i++){
System.out.println("Check: " + i);
if (priorityList[i] == s){
System.out.println("Found one.");
(Do things)
opCounter++;
}
}
}
return calcOperands.get(0);
}
Run Code Online (Sandbox Code Playgroud)
如果我做:
for(int i = 0; i < operatorSize-1; i++)
Run Code Online (Sandbox Code Playgroud)
循环根本不启动.
由于某种原因,我的循环不想只循环一次.