精华内容
下载资源
问答
  • 对象之间通过传递
    千次阅读
    2022-03-10 09:53:32

    传参

    var row = {id:2,name:1}
    this.$router.push({path: '/index', query: {row: encodeURIComponent(JSON.stringify(row))}});

    接收参数

    console.log(JSON.parse(decodeURIComponent(this.$route.query.row)))
    

    更多相关内容
  • 通过内部存储方式实现了在两个Activity之间传递Bitmap对象以及其它支持串行化的Java对象,关键点有如下: 1. HTTP客户端下载图片,通过ImageView对象显示 2. 把ImageView上的Bitmap对象从当前Activity传递到另外...
  • Android Activity之间传递对象

    千次阅读 2020-04-03 20:46:46
    开发过程中,Activity之间传递数据是必不可少的,Android中使用Intent和Bundle作为数据载体,在Activity之间传递,对于基础数据类型,Bundle已经提供了相关的put、set方法,而作为自定义的类型则需要有特别的要求。...

    一、简介

    开发过程中,Activity之间传递数据是必不可少的,Android中使用Intent和Bundle作为数据载体,在Activity之间传递,对于基础数据类型,Bundle已经提供了相关的put、set方法,而作为自定义的类型则需要有特别的要求。

    自定义类型,想要使用Bundle传递时,需要满足特定的条件,即该类型需要实现Serializable接口或Parcelable接口。

    注:如果目标对象中包含其他对象,则被包含的对象也需要实现Serializable接口或Parcelable接口。

    二、代码实现

    我们以Serializable接口为例:

    1、传递对象

    1)自定义对象,实现Serializable接口

    package com.davis.drawtrangle;
    
    import java.io.Serializable;
    
    public class Person implements Serializable{
        
        private String name;
        private int age;
    
        public Person() {
        }
    
        public Person(String name, int age) {
            this.name = name;
            this.age = age;
        }
    
        public String getName() {
            return name;
        }
    
        public void setName(String name) {
            this.name = name;
        }
    
        public int getAge() {
            return age;
        }
    
        public void setAge(int age) {
            this.age = age;
        }
    }
    

    2)使用Intent传递对象

    	private void clearDrawView(){
            Intent intent = new Intent(MainActivity.this, SecondActivity.class);
            Person person = new Person("admin", 1);
            Bundle bundle = new Bundle();
            bundle.putSerializable("person", person);
            intent.putExtras(bundle);
            startActivity(intent);
        }
    

    3)获取传递的数据

    	private void init(){
            Person person = (Person)getIntent().getSerializableExtra("person");
            Log.i("TAG", "Person name : " + person.getName() + " ---- age : " + person.getAge());
        }
    

    2、传递对象集合

    1)同上。

    2)同上。

    注:使用putSerializable()方法时,需要把List<>强转成为Serializable,并且集合中的成员都需要实现Serializable接口。

    	private void clearDrawView(){
            Intent intent = new Intent(MainActivity.this, MainActivity.class);
            List<Person> lists = new ArrayList<Person>();
            Person person = new Person("admin", 1);
            lists.add(person);
            Bundle bundle = new Bundle();
            bundle.putSerializable("person", (Serializable) lists);
            intent.putExtras(bundle);
            startActivity(intent);
        }
    

    3)同上。

    注:不足之处在于,由于获取数据时候,需要把Serializable强转成为对应的List<>,此处会有警告。

    	private void init(){
            List<Person> lists = (List<Person>)getIntent().getSerializableExtra("person");
            for(int i=0;i<lists.size();i++) {
                Person person = lists.get(i);
                Log.i("TAG", "Person name : " + person.getName() + " ---- age : " + person.getAge());
            }
        }
    

    三、注意

    使用以上方法传递对象时,都是创建了新的实例,而非传递对象的引用,如果是传递引用,也就无需序列化了。

    展开全文
  • 对象的引用传递和值传递

    千次阅读 2018-07-04 15:42:00
    我们在开发的过程中,经常会遇见对象的值传递,和对象的引用传递,老是分不清楚。 今天以下面两个例子,结合内存分析,来讲解值传递和引用传递

    我们在开发的过程中,经常会遇见对象的值传递,和对象的引用传递,老是分不清楚。

    今天以下面两个例子,结合内存分析,来讲解值传递和引用传递。

    值传递

    源代码

    
    /**
     * Created By zby on 20:46 2022/7/27
     * 学生类
     */
    public class Student{
    
        private String name;
        
        public void setName(String name) {
            this.name = name;
        }
    
        public String getName() {
            return name;
        }
    
        public void changeStudentName(Student s) {
            s = new Student();
            s.setName("nihao");
        }
    
        public static void main(String[] args) {
       1     Student student = new Student();
       2     student.setName("珠宝呀");
            
       3    *System.out.println(student.getName());*
            
       4     student.changeStudentName(student);
    
       5    *System.out.println(student.getName());*
    	}
    }
    output:
    		珠宝呀
    		珠宝呀
    

    输出结果:

    在这里插入图片描述

    你会发现,即便我调用了changeStudentName方法,其输出结果也是一样的,为什么会这样呢?

    语句1

    我们来画一个类加载的JVM结构图,当我们执行语句1时,首先会在栈里分配一个地址空间存储指向student对象1的引用的首地址:

    这里写图片描述

    语句2

    当我们执行语句2的时候,在栈里面分配一个临时变量name,临时变量存储是常量池当中的“珠宝”的地址,而通过set方法中的this.name=name,此时对象的属性存储的临时变量的副本地址,通过这个方法可得:

    String p="珠宝呀";
    student.setName(p);
    student.setName("珠宝");
    System.out.println("student-->"+student.getName());
    System.out.println("p-->"+p);
    
    output:
    	student-->珠宝
    	p-->珠宝呀
    

    发现p的值并不没改变,而对象name重新获取新的副本。这个是按值传递。

    这里写图片描述

    语句4

    当方法执行语句4时:此时获取了student对象的副本,副本指向了新的Student对象,并且set了新的名字,而Student初值并没有改变,因而,输出的结果是没有改变。

    引用传递

    如果将StudentName的返回对象改变了,就会出现不同的结果:

     public Student changeStudentName(Student s) {
            s = new Student();
            s.setName("nihao");
    
           return s;
        }
    
        public static void main(String[] args) {
    
            Student student = new Student();
            System.out.println(student.getName());
    
            String p="珠宝呀";
            student.setName(p);
            student.setName("珠宝");
            System.out.println("student-->"+student.getName());
            System.out.println("p-->"+p);
    
            student = student.changeStudentName(student);
    
            System.out.println("student-->"+student.getName());
        }
    
    	output:
    		student-->珠宝
    		p-->珠宝呀
    		student-->nihao
    

    输出结果:

    在这里插入图片描述

    因为,通过调用 student.changeStudentName(student);这个方法,返回的是一个新的对象的引用,而student重新指向了新的引用对象,故而,值就被改变了。这个是按引用传递数据。

    总结

    通过以上两段代码的分析,应该对值传递和引用传递,有个大致的了解了。

    展开全文
  • 对象之间的通信

    千次阅读 2013-05-25 19:14:58
    对象之间进行通信最基本的方式就是消息传递,在Cocoa中提供Notification Center机制来完成这一任务。其主要作用就是负责在任意两个对象之间进行通信。使用方法很简单,如下几个步骤即可:  假设A与B之间进行通信...

    对象之间进行通信最基本的方式就是消息传递,在Cocoa中提供Notification Center机制来完成这一任务。其主要作用就是负责在任意两个对象之间进行通信。使用方法很简单,如下几个步骤即可:

      假设A与B之间进行通信,B来触发事件,A接受该事件,并作出响应。
      1) A编写自定义的消息响应函数update
      2) A向消息中心注册,[NSNotificationCenter defaultCenter] addObserver: self selector:@selector(update) name:@"updateKey" object:nil];
      3) B触发事件,[[NSNotificationCenter defaultCenter] postNotificationName:@"updateKey" object:nil];

      每一个进程都有一个默认的NSNotificationCenter,可以通过类方法defaultCenter获取该消息中心的实例。消息中心可以处理同一进程中不同对象之间的消息。如果要在同一台机器上进行进程间的通信,需要使用NSDistributedNotificationCenter。

      消息中心以同步的方式将消息分发到所有的观察者中,换言之,直到所有的观察者都收到消息并处理完毕以后,控制权才会回到调用者的手里。如果需要异步的处理消息,需要使用通知队列NSNotificationQueue。

      在多线程程序中,通知会被分发到每一个发起消息的线程中,这可能与观察者注册时所在的线程已经不是同一线程。

    1. 消息处理事件postNotificationName和addObserver的调用:
          1)定义消息创建的关联值,也就是找到方法的标识
    1
    2
    3
    NSString *myNotification = @ "myNotification" ;
    myNotification是变量,@“myNotification”这个值存于通知中心中,信息中心通过这个值来识别变量。
          2)调用信息
    1
    2
    3
    4
    NSNotificationCenter *center = [NSNotificationCenter defaultCenter];
    [center postNotificationName:myNotification object:nil userInfo:[NSDictionary dictionaryWithObjectsAndKeys: [NSNumber numberWithInt:SMSRecommendNotification] , @ "actcode" ,nil]];
    [NSDictionary dictionaryWithObjectsAndKeys: [NSNumber numberWithInt:SMSRecommendNotification],这个是传递给-( void )onToIphone:(NSNotification*)notify 的参数
    展开全文
  • 在Activity之间传递对象

    千次阅读 2015-10-10 13:08:13
    今天来讲向一个Activity中传递对象在这里声明,如果一个对象要被传递,那么该对象必须通过Serializable接口或者Parcelable接口来实现对象的序列化。Serializable为JAVA提供的对象序列化接口:效率低 Parcelable为...
  • // 被传递对象 window.open("xxx.html","_blank");  在被打开的页面里面,通过 window.opener 获的打开页面对象的引用: var parent = window.opener;// 获取打开页面的引用 var obj = parent.passObj;//...
  • vue 方法间传递数据对象参数

    千次阅读 2020-12-17 10:29:12
    功能:将data对象作为参数传递给方法,在方法中对不同的参数进行相应操作。 如下,实现简单实现根据传入的不同p标签key对象,在相应p标签中显示相应内容: <template> <div> <!-- 可以通过如下两种...
  • 父组件传递给子组件 父组件代码代码: // 父组件import引入子组件(子组件路径要对) import addressToast from '@/components/addressToast' // 在component中加载组件 components: { addressToast }, ...
  • Android Activity之间实现数据传递是一项非常重要的技术,今天我就来讲一讲如何实现数据传递:     1.基本数据传递 MainActivity.java   Intent intent=new Intent(this,ThinkActivity.class);//...
  • java中对象作为参数传递给一个方法,到底是值传递,还是引用传递? pdd:所谓java只有按值传递:基本类型 值传递;引用类型,地址值传递,所以叫值传递。  当主函数的变量,对象(主本)传递到副函数时,传递的...
  • 大家都对Bundle比较熟悉了,在多个activity之间通信之间它功不可没,下面我给大家梳理利用Bundle之间传递对象的方法 首先是两个Activity,第一个是发送的Activity Intent mIntent =new Intent(getActivity(),...
  • 在MFC中实现对象之间数据的传递

    千次阅读 2015-01-22 16:00:07
    通过以上步骤,可以把App类里面的ii的数据 传递到 View类里面的iii变量。 结果如下。 ×××××××××××××××××××××××××××××××××××××××××××××...
  • vue3组件之间数据传递

    千次阅读 2022-03-14 21:15:57
    遵循vue的单向数据流,就是父组件能往子组件传递数据,但是子组件不能回传,父组件传递子组件数据的方式 就是在组件标签上使用属性绑定的方式进行传递,子组件中定义props对象,定义需要接受的数据,在setup中的...
  • 对象作为参数传递给方法

    千次阅读 2018-12-06 16:55:06
    要求: (1)定义一个Circle类,包含一个double型的radius属性代表圆的半径,一个findArea()方法返回圆的面积。 (2)定义一个类PassObject,在...在printAreas方法中打印输出1到time之间的每个整数半径值,以及对...
  • 在Android开发中,Activity之间通过Intent使用bundle,fragment之间和Activityty通过setArguments使用bundle,对于一些简单的参数传递比较简单,而且方式也有多种,这个就不介绍了。在这里介绍一下复杂的参数传递,...
  • Vue路由跳转传参如何传递一个对象

    千次阅读 2021-05-18 21:57:44
    在路由跳转传参的时候参数可能会是一个对象,但首次跳转成功接受成功后这个参数会出现,但是一旦刷新这个参数就会编程[object,object] 。 在这个是时候我们在路由跳转传递参数的时候用JSON.stringify() 将参数转换...
  • 1. 常用方式 uni.navigateTo({ url:'/pages/index/test', //建议这么写 ... 在当前页面跳转到test页面的时候 我希望传递一些参数 uni.navigateTo({ url:`/pages/index/test?id={this.id}&name=${this.name}`
  • 尽管对象的表示在形式上与一般数据类型十分相似,但是它们之间存在一种本质区别:对象之间通过消息传递方式进行通信。 消息传递原是一种与通信有关的概念,OOP使得对象具有交互能力的主要模型就是消息传递模型。对象...
  • C++对象之间通信的三种常见方式

    万次阅读 2017-11-03 18:53:19
    经过这一年多对C++的使用,总结出了下边的三种常见对象之间的通信方式。这里就不上代码了。只作为一种设计思想,记录下来方便自已以后使用,和大家一起学习,这只是自已在工作中的总结,如果谁有更好的经验,请回复...
  • 通过异步Task网络下载图片,实现图片保存为内部对象在多个Activity之间共享使用,以及Java对象串行化之后在Activity之间传递的使用演示。
  • 数组不是Java中的原始类型,但它们也不是对象,所以它们是通过传递还是通过引用传递?它是否依赖于数组包含的内容,例如引用或基元类型?数组是对象,是的,但是Java中的任何东西都不是通过引用传递的。所有参数...
  • 2)通过序列化对象在网络中传递对象; 3)通过序列化在进程间传递对象。 两种方法序列化. 一是实现Serializable接口(是JavaSE本身就支持的),implement Serializable一下就可以了 一是实现Parcelable接口(是...
  • JAVA在方法中对象作为参数传递

    千次阅读 2018-02-23 17:42:35
    但是在java中,将方法A中的某个对象传递到方法B中进行修改后,再返回到A中,我们会发现对象在B中的修改在A中也有效。示例代码如下:有一个bean类:public class DemoBean { private String id; pu...
  • 可以使用bundle进行参数传递、这样在两个Fragment跳转的时候就可以带上参数了、同样也可以传递一个复杂的对象 ft.hide(getActivity().getSupportFragmentManager().findFragmentByTag("")); DemoFra
  • Qt 线程与线程之间数据传递

    千次阅读 2020-11-11 11:12:57
    有时候我们需要不同的线程之间进行数据的传送,使得数据合并,达到完成的数据,这里简单记录下线程之间传递。基本思想通过槽函数也让线程1与线程2绑定发送数据与接受数据函数。 创建一个QT Widgets工程,添加两个...
  • Activity之间传递对象数组

    千次阅读 2013-09-16 20:15:10
    对于Android来说传递复杂类型,主要是将自己的类转换为基础的字节数组,Activity之间传递数据是通过Intent实现的。 Android序列化对象主要有两种方法,实现Serializable接口、或者实现Parcelable接口。实现...
  • activity和activity之间传递对象,fragment和fragment之间传递对象的方法,当然从activity向fragment传递对象同样可以用。由于activity是不能new出来一个对象去调用 方法的,所以。我们就需要借助于handler来传递。...
  • jsp页面之间如何传递一个js对象

    万次阅读 2016-09-02 14:02:08
    jsp页面之间如何传递一个js对象3 比如有两个jsp页面,a.jsp与b.jsp  在a.jsp中有一个js对象sellerInfo,我想要这个sellerInfo传递到b.jsp  使用 window.location = "b.jsp?data"+sellerInfo 的话 不可行  ...
  • Vue组件之间传递数据的五种方式

    千次阅读 2020-11-09 23:05:29
    Vue 组件之间数据传递的几种方式: 父组件向子组件传递数据,使用props属性;子组件向父组件中传递数据,在子组件中使用$emit派发事件,父组件中使用v-on 监听事件;缺点:组件嵌套层次多的话,传递数据比较麻烦。 ...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 826,350
精华内容 330,540
热门标签
关键字:

对象之间通过传递