`
luckyfenfen
  • 浏览: 12441 次
  • 性别: Icon_minigender_2
  • 来自: 北京
最近访客 更多访客>>
社区版块
存档分类
最新评论

2011-3-9(java的传值方式)

阅读更多

    以前在书上看到过,java的基础数据类型的传值是值传递,而非基础类型的传值为引用传值(传的是放数据的对象的地址)。对java的传值方式没有很深刻的理解。通过这次犯的错误,使我对java的传值方式理解了一点。

 

我是想把一条一条的记录通过jo放入到jsonArr中。

错误代码:

 

 

JSONObject jo = new JSONObject();

for (i = 1; i < bbsTagOptionList.size()+1; i++) {
                BbsSubject bs = (BbsSubject) bbsTagOptionList.get(i-1);
                Long bbsSubjectId = bs.getId();
                String name = bs.getName();
                jo.put("bbsSubjectId", bbsSubjectId);
                jo.put("name", name);
                jsonArr.put(i, jo);
            }

打印输出后,jsonArr中所有的数据都跟最后一条数据一样(jsonArr[0]==jsonArr[1]==jsonArr[2]),很不明白。

只好求助师姐,师姐很快发现了问题的所在。jsonArr.put(i,jo);只是把jo的地址传进了jsonArr中。而我写的错误代码中只声明了一个JsonArray对象,当然jsonArr中的放的都是同一个地址,当然每条值根据地址找到的都是最后一次放入jo中的值。

 

 

正确代码:

for (i = 1; i < bbsTagOptionList.size()+1; i++) {
                BbsSubject bs = (BbsSubject) bbsTagOptionList.get(i-1);
                Long bbsSubjectId = bs.getId();
                String name = bs.getName();

                JsonObject jo=new JsonObject();
                jo.put("bbsSubjectId", bbsSubjectId);
                jo.put("name", name);
                jsonArr.put(i, jo);
            }

分享到:
评论

相关推荐

    android -servlet-mysql(json)登陆传值

    【标题】:“Android-Servlet-MySQL(json)登录传值”技术详解 在移动应用开发中,尤其是Android平台,用户登录功能是不可或缺的一部分。本技术专题将深入探讨如何在Android客户端通过Servlet与远程MySQL数据库交互...

    解决java enctype multipart form-data文件上传传值问题

    ### 解决Java enctype "multipart/form-data" 文件上传传值问题 在Java Web开发中,处理文件上传是一项常见的任务。特别是当涉及到使用`multipart/form-data`作为表单的编码类型时,这种需求更为突出。本文将深入...

    java-web学习demo--最简单的servlet jsp跳转传值

    通过这个简单的Java Web学习demo,开发者可以了解Servlet和JSP协同工作的方式,以及如何在它们之间传递数据。这有助于理解Web应用的基础架构,并为进一步深入学习和开发复杂的Java Web应用打下坚实基础。

    lotus domnio java代理传值

    "lotus domnio java代理传值"这个主题主要涉及如何在Java代码中创建和使用代理,并在代理之间传递参数。 首先,让我们了解一下Lotus Domino Java代理的基本概念。在Lotus Domino Designer中,Java代理是用Java语言...

    java传值中的乱码

    ### Java传值中的乱码问题及最简易的解决方法 在Java Web开发中,经常会遇到一个令人头疼的问题:客户端向服务器传递数据时出现乱码。这种情况不仅会影响用户体验,还可能导致程序逻辑错误。本文将深入探讨Java传值...

    Java SE程序 界面传值问题

    Java SE程序 界面传值问题Java SE程序 界面传值问题Java SE程序 界面传值问题Java SE程序 界面传值问题Java SE程序 界面传值问题Java SE程序 界面传值问题Java SE程序 界面传值问题Java SE程序 界面传值问题Java SE...

    java的传值与传值后的改变

    在Java编程语言中,"传值与传值后的改变"是一个关键的概念,涉及到函数调用时参数的传递方式。在Java中,有两种基本的数据类型:原始类型(如int, double, char等)和引用类型(如类实例、数组)。它们在函数调用时...

    JSP中java代码与js之间的传值

    - Java端可以使用JSON库(如Jackson或Gson)将Java对象转换为JSON字符串,然后通过上述方式传递给JavaScript。 - JavaScript可以使用JSON.parse()解析接收到的JSON字符串,将其转换回JavaScript对象。 4. **Web...

    layui-soul-table-java:layui-soul-table 后台java版

    layui-soul-table 后台java版 当前soul-table版本 v1.0, layui版本:v2.5.4 mybatis版: master分支 mybatis-plus版: mybatis-plus分支 hibernate版: hibernate分支 所有筛选demo: 仅后台java版demo: 当然你也可以...

    java中页面传值的简单操作

    在Java Web开发中,页面传值是不可或缺的一部分,主要用于用户在网页上填写信息后提交到服务器进行处理。本文将详细讲解如何在Java中通过表单(Form)进行页面传值的简单操作。 首先,我们需要了解HTML中的表单元素...

    Java传值还是引用

    根据标题和描述,我们将深入探讨Java中传值与引用的区别,以及它们在实际编程中的应用。 首先,Java是一种“总是按值传递”的语言。这意味着无论是基本类型还是引用类型,当作为参数传递时,都会有一个副本被创建并...

    java及C++中传值传递、引用传递和指针方式的理解.docx

    ### Java及C++中传值传递、引用传递和指针方式的理解 在程序设计语言中,函数调用时参数的传递方式对理解程序的行为至关重要。本文将深入探讨Java与C++这两种广泛使用的编程语言中参数传递的方式,包括值传递、引用...

    JAVA中传值与引用问题

    ### JAVA中传值与引用问题详解 #### 一、引言 在计算机编程领域,特别是对于面向对象语言如Java而言,“传值”与“传引用”的概念是理解数据传递机制的关键所在。Java作为一种广泛使用的高级编程语言,在设计之初就...

    Java是传值还是传址引用

    ### Java是传值还是传址引用 #### 一、简单类型是按值传递的 Java在处理简单数据类型(如int、boolean等)时采用的是按值传递的方式。这意味着当你将一个简单类型的值作为参数传递给一个方法时,实际上传递的是这...

    JAVA传值与传引用[整理].pdf

    JAVA传值与传引用[整理].pdf

    Android Intent多种传值方式

    本文将深入探讨Android Intent的多种传值方式。 1. **基本类型传值** - 使用`putExtra()`方法:Intent提供了`putExtra(String name, boolean value)`、`putExtra(String name, char value)`等方法,可以用来传递...

    Android-Fragment和Activity的传值通例子

    4. Interface回调:这是一种更规范的通信方式,定义一个接口,Fragment实现这个接口,然后在Activity中调用Fragment暴露的接口方法,以此来传递数据。这种方式适用于Activity向Fragment传递数据,或者需要在Fragment...

    通过asterisk-java操作asterisk

    3. **发送命令**:Asterisk-java提供了`ManagerAction`类,你可以通过继承它来定义自己的命令,或者使用内置的命令,如`OriginateAction`用于发起新的通话,`HangupAction`用于挂断通话。通过`ManagerConnection`的`...

    struts2-传值方式

    ### Struts2 传值方式详解 在Struts2框架中,实现前后台的数据传递是构建Web应用的基础之一。本文将详细介绍三种常见的Struts2数据传递方式:通过默认的Action属性传递、使用Value Object(VO)传递以及利用...

    Android学习笔记--Activity中使用Intent传值示例代码

    ```java public class MainActivity extends Activity { private TextView textView; private Button btn; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate...

Global site tag (gtag.js) - Google Analytics