有个类classPerson{........}publicclassMain{publicstaticvoidmain(String[]args){Personp1=newPerson();p1=func(p1);}staticPersonfunc(Personp){Personnewp=newPerson();if(满足某...
有个类
class Person {
........
}
public class Main {
public static void main(String[] args)
{
Person p1 = new Person();
p1 = func(p1);
}
static Person func(Person p)
{
Person newp = new Person();
if(满足某一条件)
p = newp;
return p;
}
}
上面的可以在func里改变函数外面的p1的指向,但是如果外面有两个Person需要改变呢?
例如:
main里面有 Person p1和 Person p2,有没有办法调用func,改变这两个都指向func里新new出来的两个不同的Person?
func(p1, p2)
{
Person newP1 = new Person();
Person newP2 = new Person();
if(满足条件)
{
p1 = newP1;
p2 = newP2
}
}
我是想到C语言里面可以用指针的指针来为结构体分配内存而想到这个问题的,有没有解决办法?
C语言里
void func(struct person ** p1, struct person ** p2)
{
*p1 = (struct person*)malloc(sizeof(struct person));
*p2 = (struct person*)malloc(sizeof(struct person));
} 这样都不需要返回值,就算返回,也返回不了两个。
java里有没有类似的方法?
展开