站内搜索: 请输入搜索关键词

当前页面: 开发资料首页J2SE 专题有办法基本类型的传递引用吗?

有办法基本类型的传递引用吗?

摘要: 有办法基本类型的传递引用吗?


比如我的函数需要返回一个int, float, double 。如果在C/C++可以简单的有下面2种方法
void myFun(int* pa, float* pb, double* pc);或者
void myFun(int& a, float& b, double& c);如果用C#可以
void myFun(ref int a, ref float b, ref double c)。
如果用java怎么办?将3个值类型封装成一个对象然后返回
ArryList myFun(void)
{
....
ArryList ret= new ArryList();
ret.add(a);
ret.add(b);
ret.add(c);
return ret;
}
感觉这样太笨重了,java有类似C/C++ C#简单的解决方法吗?


我觉得没有办法像C或C#那样。


......
除了我写的方法,还有更简单一点的方法吗?


用基础类型的包装类就可以了
比如 int Integer................


可以吗?
void f(Integer n)
{
n=2*n-2;

}
public static void main(String[] args) {
int x=100;
heapFindMax(null, null, x);
System.out.print(x);
}
输出还是100;


自己顶一下


要实现这种功能只能够自己写个类来封装一下了,像Integer这种类也是不能够实现这种功能的,因为Integer类是只读的,不能够改变值。


不过可以使用数组实现
void f(int []n){
n[0]=1;
}


用基础类型的包装类就可以了
比如 int Integer................



int num = 5 ;
Integer i = new Integer(num)
调用
int d = i.inValue();



说使用Integer包装类可以的人不知道你试过了没有,如果你没有试过就不要乱说吗。使用Integer包装类肯定是不可以的,Integer类的值只能够初始化,是不能够修改的。可以自己写一个包装类或者通过数组实现。


這個得學習學習!


昨天翻《practice java》(好像拼错了), 看到书上提供的解决方法类似于rumlee(rum-lee) 老兄的方法。 不知道还有没有更轻便的方法。 偶开始是学C/C++的, 觉得C#都提供了ref关键字,java却要用数组或是自己的包装类来解决真的是很笨重。


只能自己封装,因为不提供直接对内存地址的访问,必须封装.


没办法


好像是没有办法,只有利用返回


在JAVA中只有数组和对象是采用的是引用机制,如果你想实现,要么定义个类,要么定义个数组(还得是同一数据类型的)。JAVA肯定是没有C++那么效率高的,这是由语言特性决定的。


用数组肯定行


数组的方法还是不错的。。。


↑返回目录
前一篇: session
后一篇: 简单问题:系统日期