我是java新手。我需要将原始类型值作为函数调用中的引用传递。我不想从函数返回 i 值,因为它已经返回了一些对象。for (int i = 0; i < objects.size();) { // here it should fetch that object based on i manipulated in function Object obj = objects.get(i) Object node = someFunction(session,obj,i); // push node in nodes array}public Object someFunction(Session session,Object obj,int i){ //manipulate i value based on condition if(true){ i = i + 1; }else{ i = i + 2; }}当 JAVA 在函数调用中使用按值传递时,我如何实现这一点?
3 回答
桃花长相依
TA贡献1860条经验 获得超8个赞
你知道java流吗?使用流,您可以执行以下操作:
List<Object> result = objects.stream()
.filter(object -> {/*add condition here*/})
.map(object->{/*do something with object that match condition above*/})
.collect(Collectors.toList());
您可以使用此机制根据特定条件收集和处理对象。
如果这没有帮助,也许使用迭代器?
Iterator<Object> it = objects.iterator();
while(it.hasNext()){
Object node = someFunction(session,it);
}
public Object someFunction(Session session,Iterator i){
//manipulate i value based on condition
if(true){
i.next();
}else{
i.next();
i.next();
}
}
阿晨1998
TA贡献2037条经验 获得超6个赞
在 Java 中,原始类型总是按值传递。要通过引用传递,您应该定义一个类并将原始类型放入其中。如果您传递 Integer 类它不起作用,因为这个类是不可变的并且值不会改变。
添加回答
举报
0/150
提交
取消