有 Java 编程相关的问题?

你可以在下面搜索框中键入要查询的问题!

JAVA传递原语类型作为函数调用的引用

我是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) 个答案

  1. # 1 楼答案

    在java中,基本类型总是按值传递。要通过引用传递,应该定义一个类并将基本类型放入其中。如果传递Integer类,它将不起作用,因为该类是不可变的,且值不变

  2. # 2 楼答案

    你知道java流吗?使用streams,您可以执行以下操作:

    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();
       }
    }
    
  3. # 3 楼答案

    可以使用int[]类型的单数数组来快速求解,并增加其内部值。这不会改变数组本身,只会改变其内容