Hi !
Featured games (85)
games approved by the League of Dukes
Games in Showcase (636)
Games in Android Showcase (178)
games submitted by our members
Games in WIP (687)
games currently in development
News: Read the Java Gaming Resources, or peek at the official Java tutorials
    Home     Help   Search   Login   Register   
Pages: [1]
  ignore  |  Print  
  cast removal  (Read 1520 times)
0 Members and 1 Guest are viewing this topic.
Offline pepe

Junior Devvie

Nothing unreal exists

« Posted 2004-08-06 07:28:01 »

Let's say that i have a method that does like clone(), but implements the cloning itself. That method does not return an Object instance, but an instance of the class itself. I think it it to remove the need to cast, for two reasons: speed and typing reduced.
I don't believe that doing so is clever, as duplicating processes for a task is a Bad ThingĀ©, and can introduce bugs directly and during updates, but this is an other story.
My question at the moment is:
is the cast point valid? Wouldn't hotspot remove the cast when returning from clone() in a case as the one  below?
MyClass mc = (MyClass)myOtherClass.clone();

By the way... anyone ever benchmarked clone() opposed to hand done cloning?

Home page:
GoSub: java2D gamechmark
Offline pepe

Junior Devvie

Nothing unreal exists

« Reply #1 - Posted 2004-08-13 02:50:50 »

is there something wrong with the question, or simply nobody knows?

Home page:
GoSub: java2D gamechmark
Offline princec

« JGO Spiffy Duke »

Medals: 625
Projects: 3
Exp: 16 years

Eh? Who? What? ... Me?

« Reply #2 - Posted 2004-08-13 07:46:41 »

Maybe no-one knows. It's one of those things that's not likely to be a performance bottleneck anywhere I shouldn't think, either. I think that the cast is probably removable after the clone has been inlined.

Cas Smiley

Games published by our own members! Check 'em out!
Legends of Yore - The Casual Retro Roguelike
Offline crystalsquid

Junior Devvie

... Boing ...

« Reply #3 - Posted 2004-08-13 12:09:48 »

I don't think you even need the cast do you?

If MyOtherClass is derived from MyClass, then you should always be able to assign it to a base-class reference - at least you can in C++.

Casting the other way doen the inheritance tree is a different matter, and requires a cast and some care.

Speed wise I'm fairly certain that the cast would be more a compiler issue as opposed to generating any bytecodes from it - though I could be wrong on that too!  Wink

- Dom
Offline kevglass

« JGO Spiffy Duke »

Medals: 272
Projects: 25
Exp: 18 years

Coder, Trainee Pixel Artist, Game Reviewer

« Reply #4 - Posted 2004-08-13 12:30:21 »

Unfortunately clone() returns Object tho, so the cast is required.


Pages: [1]
  ignore  |  Print  
You cannot reply to this message, because it is very, very old.

Dwinin (72 views)
2015-11-07 13:29:08

Rems19 (81 views)
2015-10-31 01:36:56

Rems19 (74 views)
2015-10-31 01:32:37

williamwoles (107 views)
2015-10-23 10:42:59

williamwoles (93 views)
2015-10-23 10:42:45

Jervac_ (107 views)
2015-10-18 23:29:12

DarkCart (135 views)
2015-10-16 00:58:11

KaiHH (116 views)
2015-10-11 14:10:14

KaiHH (156 views)
2015-10-11 13:26:18

BurntPizza (171 views)
2015-10-08 03:11:46
Rendering resources
by Roquen
2015-11-13 14:37:59

Rendering resources
by Roquen
2015-11-13 14:36:58

Math: Resources
by Roquen
2015-10-22 07:46:10

Networking Resources
by Roquen
2015-10-16 07:12:30

Rendering resources
by Roquen
2015-10-15 07:40:48

Math: Inequality properties
by Roquen
2015-10-01 13:30:46

Math: Inequality properties
by Roquen
2015-09-30 16:06:05

HotSpot Options
by Roquen
2015-08-29 11:33:11 is not responsible for the content posted by its members, including references to external websites, and other references that may or may not have a relation with our primarily gaming and game production oriented community. inquiries and complaints can be sent via email to the info‑account of the company managing the website of java‑
Powered by MySQL Powered by PHP Powered by SMF 1.1.18 | SMF © 2013, Simple Machines | Managed by Enhanced Four Valid XHTML 1.0! Valid CSS!