× The internal search function is temporarily non-functional. The current search engine is no longer viable and we are researching alternatives.
As a stop gap measure, we are using Google's custom search engine service.
If you know of an easy to use, open source, search engine ... please contact support@midrange.com.


  • Subject: RE: Vector question
  • From: "Joe Teff" <JoeTeff@xxxxxxxxxxxxx>
  • Date: Fri, 2 Mar 2001 23:21:05 -0600
  • Importance: Normal

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 thread ...

Replies:

Follow On AppleNews
Return to Archive home page | Return to MIDRANGE.COM home page

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.