|
This is where you need to pay very close attention to the API (documentation). The return type from Vector's get() method is an Object. You need to cast it to a MyClass before you can use it as such. The object is still a MyClass object, but the data type is Object, so those are the only methods/data available unless you cast. if ((MyClass)(list.paintOptions.get(x)).isBlue) list is a data type MyClassList that has a reference variable paintOptions. paintOptions is a data type Vector. A MyClass object is created and added as a object in the Vector. Understanding how reference variables are converted (automatic or implicit) and casted (manual or explicit) is fundamental to understanding the Java language. Take the following line: Object obj = new MyClass(); obj is an Object data type and it refers to an object. The object is really a MyClass object, but the only things you can do to it right now are those things that an Object can do. Now take the following statement: MyClass abc = obj; This statement would fail because obj is an Object data type and MyClass is going down the inheritance structure. Thus, I have to cast to make it work. It will automatically convert going up, not coming down. The following line will compile: MyClass abc = (MyClass) obj; This will compile. At runtime, if obj does not point to an actual MyClass object, I will get a runtime exception. Joe Teff -----Original Message----- From: owner-java400-l@midrange.com [mailto:owner-java400-l@midrange.com]On Behalf Of Stone, Brad V (TC) Sent: Friday, March 02, 2001 4:08 PM To: 'JAVA400-L@midrange.com' Subject: Vector question Ok, here's what I'm trying to do.. public class MyClass extends java.lang.Object { protected boolean isBlue = false; public MyClass() { this.isBlue = false; } public void setAsBlue() { this.isBlue = true; } } public class MyClassList extends java.lang.Object { protected Vector paintOptions = new Vector(); public MyClassList() { this.paintOptions.removeAllElements(); } public load() { MyClass list = new MyClass(); list.setAsBlue(); this.paintOptions.addElement(list); } } Now, I'm trying to do this: MyClassList list = new MyClassList(); list.load(); if (list.paintOptions.get(x).isBlue) blah; I'm assuming I'm doing something way wrong (if you can even tell what I'm trying to do). I'm trying to make a basic class, then make another class that is a vector of that subclass. Wait, subclass... Should I be declaring the MyClassList as extends MyClass instead of Extends Object? Brad +--- | This is the JAVA/400 Mailing List! | To submit a new message, send your mail to JAVA400-L@midrange.com. | To subscribe to this list send email to JAVA400-L-SUB@midrange.com. | To unsubscribe from this list send email to JAVA400-L-UNSUB@midrange.com. | Questions should be directed to the list owner: joe@zappie.net +--- +--- | This is the JAVA/400 Mailing List! | To submit a new message, send your mail to JAVA400-L@midrange.com. | To subscribe to this list send email to JAVA400-L-SUB@midrange.com. | To unsubscribe from this list send email to JAVA400-L-UNSUB@midrange.com. | Questions should be directed to the list owner: joe@zappie.net +---
As an Amazon Associate we earn from qualifying purchases.
This mailing list archive is Copyright 1997-2024 by midrange.com and David Gibbs as a compilation work. Use of the archive is restricted to research of a business or technical nature. Any other uses are prohibited. Full details are available on our policy page. If you have questions about this, please contact [javascript protected email address].
Operating expenses for this site are earned using the Amazon Associate program and Google Adsense.