Java-Gaming.org    
Featured games (81)
games approved by the League of Dukes
Games in Showcase (498)
Games in Android Showcase (115)
games submitted by our members
Games in WIP (562)
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  
  Class Cast Exception I cant fix  (Read 424 times)
0 Members and 1 Guest are viewing this topic.
Offline saucymeatman
« Posted 2014-02-11 00:45:53 »

Hey, i'm probably just doing something stupid, but I am unable to resolve my problem by googling and I'm hoping you guys can help if you have the solution on hand.

The error is thrown here,

1  
new Mesh((Transform[])vertices.toArray(),(Quad[])quads.toArray(),(Tri[])tris.toArray())


The error is,

1  
2  
3  
Exception in thread "main" java.lang.ClassCastException: [Ljava.lang.Object; cannot be cast to [Lcore.Transform;
   at renderable.Mesh.fromFile(Mesh.java:136)
   at testing.Main.main(Main.java:78)


"vertices", "quads" and "tris" are ArrayList's of their respective types.
Online BurntPizza
« Reply #1 - Posted 2014-02-11 01:29:07 »

Are your lists typified?

1  
2  
3  
//must specify <Transform>
vertices = new ArrayList<Transform>();
...


Then you actually won't need the casts, thanks to ArrayList being generic.

EDIT: hmm, seems like cast is still necessary, my bad, and that code of yours still runs fine, put a print in a finally block and see what just attempted to cast, my guess is some other object got into your list.
Offline Stranger

Senior Member


Medals: 6



« Reply #2 - Posted 2014-02-11 05:31:29 »

Do that in the following way:

1  
2  
3  
new Mesh(vertices.toArray( new Transform[ vertices.size() ]),
                        quads.toArray( new Quad[ quads.size() ]),
                        tris.toArray( new Tri[ tris.size() ]))


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

JGO Wizard


Medals: 69
Projects: 8
Exp: 5 years


Complex != complicated


« Reply #3 - Posted 2014-02-11 11:19:49 »

"vertices", "quads" and "tris" are ArrayList's of their respective types.

If, as you seem to suggest "vertices" is an ArrayList<Vertice> or something like that, then the toArray function you call returns an array of Vertice(or whatever that type is), which is not an array of Transform (i.e. you cannot cast Transform[] to Vertice[]). Hence the class cast exception, which is what I would assume to be the problem.

Edit: can you clarify what you ate trying to do with the Transform?

Offline SHC
« Reply #4 - Posted 2014-02-11 11:45:14 »

Maybe
vertices
is of type
ArrayList<Vertex>


If that is the case, you should change your code to

1  
new Mesh((Vertex[])vertices.toArray(),(Quad[])quads.toArray(),(Tri[])tris.toArray())

Maybe this should solve your problem.

Offline SHC
« Reply #5 - Posted 2014-02-11 11:47:03 »

I think
vertices
are
indices
in the code. There is no point in passing vertices along with Quads and Triangles.

Offline saucymeatman
« Reply #6 - Posted 2014-02-11 19:53:25 »

Hey thanks for all the help.
Stranger got it (+1).

I think
vertices
are
indices
in the code. There is no point in passing vertices along with Quads and Triangles.
There is, Mesh keeps track of the vertices of the mesh.

Are your lists typified?

1  
2  
3  
//must specify <Transform>
vertices = new ArrayList<Transform>();
...


Then you actually won't need the casts, thanks to ArrayList being generic.

EDIT: hmm, seems like cast is still necessary, my bad, and that code of yours still runs fine, put a print in a finally block and see what just attempted to cast, my guess is some other object got into your list.
Yes they are :
1  
2  
3  
      ArrayList<Transform> vertices = new ArrayList<Transform>();
      ArrayList<Quad> quads = new ArrayList<Quad>();
      ArrayList<Tri> tris = new ArrayList<Tri>();


Sorry for my late reply, and thanks again.
Pages: [1]
  ignore  |  Print  
 
 
You cannot reply to this message, because it is very, very old.

 

Add your game by posting it in the WIP section,
or publish it in Showcase.

The first screenshot will be displayed as a thumbnail.

radar3301 (10 views)
2014-09-21 23:33:17

BurntPizza (28 views)
2014-09-21 02:42:18

BurntPizza (18 views)
2014-09-21 01:30:30

moogie (20 views)
2014-09-21 00:26:15

UprightPath (27 views)
2014-09-20 20:14:06

BurntPizza (29 views)
2014-09-19 03:14:18

Dwinin (46 views)
2014-09-12 09:08:26

Norakomi (74 views)
2014-09-10 13:57:51

TehJavaDev (102 views)
2014-09-10 06:39:09

Tekkerue (50 views)
2014-09-09 02:24:56
List of Learning Resources
by Longor1996
2014-08-16 10:40:00

List of Learning Resources
by SilverTiger
2014-08-05 19:33:27

Resources for WIP games
by CogWheelz
2014-08-01 16:20:17

Resources for WIP games
by CogWheelz
2014-08-01 16:19:50

List of Learning Resources
by SilverTiger
2014-07-31 16:29:50

List of Learning Resources
by SilverTiger
2014-07-31 16:26:06

List of Learning Resources
by SilverTiger
2014-07-31 11:54:12

HotSpot Options
by dleskov
2014-07-08 01:59:08
java-gaming.org 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‑gaming.org
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!