java 参数地址传递改变值 请教了
我现在写一个共同方法publicstaticvoidgetPageKbnFlag(HttpServletRequestrequest,StringkinouId,Stri...
我现在写一个共同方法
public static void getPageKbnFlag(HttpServletRequest request,
String kinouId, String dnpSyuKbn, String shoriKbn,
String gyomuSyuKbn) throws LogicExecuteException {
//有一些处理。下面是一个返回值。
gyomuSyuKbn = syuKbnLogic.getGyomuSyuKbn();
我的想法是把,gyomuSyuKbn 取得的值返回去。 展开
public static void getPageKbnFlag(HttpServletRequest request,
String kinouId, String dnpSyuKbn, String shoriKbn,
String gyomuSyuKbn) throws LogicExecuteException {
//有一些处理。下面是一个返回值。
gyomuSyuKbn = syuKbnLogic.getGyomuSyuKbn();
我的想法是把,gyomuSyuKbn 取得的值返回去。 展开
4个回答
展开全部
往该方法中再传递一个对象bean,该bean用来保存gyomuSyuKbn 的值,在getPageKbnFlag通过setter设置gyomuSyuKbn = syuKbnLogic.getGyomuSyuKbn();得到的值,记得不要在getPageKbnFlag中new 这个bean,应该直接传进这个方法后,直接使用,否则会将引用指向新的对象,被调用方法是取不到值的,最后在调用方法中使用getter方法得到值;
====================================================
java中传递参数的时候,都是参数的一份拷贝而已,基本类型因为拷贝就是参数本身,所以基本类型传递是不会改变参数值的,而对象传参,传的是引用,引用的拷贝还是指向原参数对象,如果在方法中没有将该引用拷贝指向其它对象,则能改变参数(对象)的值。
以下不能改变
public void change(Person person)
{
person = new Person(); //引用指向对象改变,参数值不会变
}
以下能改变
public void change(Person person)
{
person.setName(""); //引用指向对象没有改变,参数值不会变
}
给你一篇文章,仔细体会一下:
http://blog.sina.com.cn/s/blog_4df91b180100nozy.html
====================================================
java中传递参数的时候,都是参数的一份拷贝而已,基本类型因为拷贝就是参数本身,所以基本类型传递是不会改变参数值的,而对象传参,传的是引用,引用的拷贝还是指向原参数对象,如果在方法中没有将该引用拷贝指向其它对象,则能改变参数(对象)的值。
以下不能改变
public void change(Person person)
{
person = new Person(); //引用指向对象改变,参数值不会变
}
以下能改变
public void change(Person person)
{
person.setName(""); //引用指向对象没有改变,参数值不会变
}
给你一篇文章,仔细体会一下:
http://blog.sina.com.cn/s/blog_4df91b180100nozy.html
展开全部
这种返回很简单啊,两种方法:
方法一:
首先确定gyomuSyuKbn类型,假设是String类型,直接在类里面定义一个参数。
Class XX{
String gyomuSyuKbn=null;
public static void getPageKbnFlag(HttpServletRequest request,
String kinouId, String dnpSyuKbn, String shoriKbn,
String gyomuSyuKbn) throws LogicExecuteException {
……
gyomuSyuKbn = syuKbnLogic.getGyomuSyuKbn();
}
}
方法二:
首先确定gyomuSyuKbn类型,假设是String类型,那就改写一下你的方法(让其返回一个String):
public static String getPageKbnFlag(HttpServletRequest request,
String kinouId, String dnpSyuKbn, String shoriKbn,
String gyomuSyuKbn) throws LogicExecuteException {
gyomuSyuKbn = syuKbnLogic.getGyomuSyuKbn();
return gyomuSyuKbn; }
在外面获得这个值
String gyomuSyuKbn =getPageKbnFlag(req,kinouId,dnpSyuKbn,shoriKbn,gyomuSyuKbn)
方法一:
首先确定gyomuSyuKbn类型,假设是String类型,直接在类里面定义一个参数。
Class XX{
String gyomuSyuKbn=null;
public static void getPageKbnFlag(HttpServletRequest request,
String kinouId, String dnpSyuKbn, String shoriKbn,
String gyomuSyuKbn) throws LogicExecuteException {
……
gyomuSyuKbn = syuKbnLogic.getGyomuSyuKbn();
}
}
方法二:
首先确定gyomuSyuKbn类型,假设是String类型,那就改写一下你的方法(让其返回一个String):
public static String getPageKbnFlag(HttpServletRequest request,
String kinouId, String dnpSyuKbn, String shoriKbn,
String gyomuSyuKbn) throws LogicExecuteException {
gyomuSyuKbn = syuKbnLogic.getGyomuSyuKbn();
return gyomuSyuKbn; }
在外面获得这个值
String gyomuSyuKbn =getPageKbnFlag(req,kinouId,dnpSyuKbn,shoriKbn,gyomuSyuKbn)
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
public static String getPageKbnFlag(HttpServletRequest request,
String kinouId, String dnpSyuKbn, String shoriKbn,
String gyomuSyuKbn) throws LogicExecuteException {
gyomuSyuKbn = syuKbnLogic.getGyomuSyuKbn();
return gyomuSyuKbn;
}
String kinouId, String dnpSyuKbn, String shoriKbn,
String gyomuSyuKbn) throws LogicExecuteException {
gyomuSyuKbn = syuKbnLogic.getGyomuSyuKbn();
return gyomuSyuKbn;
}
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
java的参数传递方式是传值
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询