# Dynamic casting example

**URL:** <https://discourse.processing.org/t/dynamic-casting-example/1775>\
**Category:** Coding Questions\
**Created:** [July 15, 2018, 12:24am UTC](https://discourse.processing.org/t/dynamic-casting-example/1775 "2018-07-15T00:24:01Z")\
**Posts on this page:** 3\
**Page:** 1

<div class="post-metadata">

**Author:** ![bontempos](https://yyz2.discourse-cdn.com/flex036/user_avatar/discourse.processing.org/bontempos/32/397_2.png) [@bontempos](https://discourse.processing.org/u/bontempos)\
**Post date:** [July 15, 2018, 12:24am UTC](https://discourse.processing.org/t/dynamic-casting-example/1775/1 "2018-07-15T00:24:01Z")

</div>

I would like some help to understand why casting Object to Object returns `true` on Output #5 and `false` on Output #7 if eventually I think both are comparing same object being casted by same class.

Thanks you

```auto
class Test {
  PVector a = new PVector(3, 2, 1);
  float f = 2f;
}

Test t = new Test();

void setup() {

  //copy variable from class
  float cv = t.a.x;
  println( cv == t.a.x ); //1, OUTPUTS: true
  
  //get class
  //println( cv.getClass() ); //Error: Cannont invoke getClass() on the primitive Type float
  println( ((Object)cv).getClass() ); //2, OUTPUTS: class java.lang.Float
  println( ((Object)t.a.x).getClass() ); //3, OUTPUTS: class java.lang.Float
  
  //move to Object
  Object ocv = cv;
  Object otax = t.a.x;

  //comparing objects
  println( (float)ocv == (Float)otax ); //4 casting Float on float, OUTPUTS: true
  
  //Dynanic cast
  try {
    Class c = ((Object)t.a.x).getClass();
    Object b = Class.forName(c.getName()).cast(ocv);
    println( ocv == b ); //5, casting Object on Object OUTPUTS: true
  }
  catch(Exception e) {
  }
  
  println( ocv == (Float)otax ); //6, casting Float on Object OUTPUTS: false
  println( ocv == otax ); //7, casting Object on Object OUTPUTS: false
}

```

---

<div class="post-metadata">

**Author:** ![GoToLoop](https://yyz2.discourse-cdn.com/flex036/user_avatar/discourse.processing.org/gotoloop/32/86_2.png) [@GoToLoop](https://discourse.processing.org/u/GoToLoop)\
**Post date:** [July 15, 2018, 12:31am UTC](https://discourse.processing.org/t/dynamic-casting-example/1775/2 "2018-07-15T00:31:44Z")

</div>

[https://Docs.Oracle.com/javase/tutorial/java/data/autoboxing.html](https://Docs.Oracle.com/javase/tutorial/java/data/autoboxing.html)

---

<div class="post-metadata">

**Author:** ![bontempos](https://yyz2.discourse-cdn.com/flex036/user_avatar/discourse.processing.org/bontempos/32/397_2.png) [@bontempos](https://discourse.processing.org/u/bontempos)\
**Post date:** [July 15, 2018, 1:28am UTC](https://discourse.processing.org/t/dynamic-casting-example/1775/3 "2018-07-15T01:28:38Z")

</div>

Thank you so much GoToLoop! I will read more about it.
