zoukankan      html  css  js  c++  java
  • 如何区分同一Class的不同实例对象

    如何区分同一Class的不同实例对象

    标签: Java


    今天在一个Java群里有一个群友问了一个问题:

    public class AClass {
    
    	public static void main(String[] args) {
    		SubClass s1 = new SubClass();
    		s1.print();
    		SubClass s2 = new SubClass();
    		s2.print();
    	}
    	
    }
    
    class SubClass{
    	 void print(){
    		System.out.println("s1 or s2 invoke thie method?");
    	}
    }
    

    SubClass实例化了两个对象,分别是s1s2,两个对象都调用了print()方法,在方法中我们如何得知到底是哪个对象调用了这个方法?

    有人说使用System.out.println(this.getClass().getName());,这显然是不行的。这样只能得到SubClass这个类型的信息,不管是s1还是s2对象,他们都是属于SubClass类型。

    我建议使用System.out.println(this.hashCode());,这样可以得到不同的对象的哈希码。更改print()方法之后,得到结果如下:

    1908246931
    1385385019
    

    这样,不同的对象拥有不同的哈希码,也就拥有了一个唯一标识。

  • 相关阅读:
    取目标描述
    DCLF RCVF SNDF SNDRCVF等用法
    CL过程监控JOB的错误消息
    取用户配置文件属性
    SNDBRKMSG 例子
    信息操作
    文件下载解决中文乱码
    table行的上移下移 上下移动
    常用表操作Sql语句
    sql删除重复行
  • 原文地址:https://www.cnblogs.com/baininghan/p/4221943.html
Copyright © 2011-2022 走看看