Groups | Search | Server Info | Keyboard shortcuts | Login | Register [http] [https] [nntp] [nntps]


Groups > comp.lang.java.programmer > #36765

Re: Eclipse

From Eric Sosman <esosman@comcast-dot-net.invalid>
Newsgroups comp.lang.java.programmer
Subject Re: Eclipse
Date 2017-06-29 09:47 -0400
Organization A noiseless patient Spider
Message-ID <oj306u$gq0$1@dont-email.me> (permalink)
References <8b4bfc08-ccdb-40bf-a4f6-875d0cd9a058@googlegroups.com> <f4c93896-75b3-472d-9564-ee5f93839fcb@googlegroups.com> <5314f277-558b-43d1-8564-460ab8dab26a@googlegroups.com> <1b033cbe-4bc2-497f-9c93-e6e90b75f39b@googlegroups.com>

Show all headers | View raw


On 6/29/2017 9:05 AM, Eric Douglas wrote:
> On Wednesday, June 28, 2017 at 3:07:29 PM UTC-4, Eric Douglas wrote:
>> So I got this first warning on a .contains() of an ArrayList<> defined to hold objects implementing my custom interface, checking an instance of Component.  This is valid code, and it's only suggestions are to add a @SuppressWarnings, or configure warning severity.
> 
> Is there a proper way to make this message go away, or do I just add @SuppressWarnings or change this "error" to completely ignore?
> I have some different types of JComponent classes which implement MyCustomInterface, and some JComponent which do not implement.
> I have a class level variable defined as ArrayList<MyCustomInterface>.
> I have a method parameter passing in a Component.
> My ArrayList variable calls .contains() to check against that component.
> It wants to warn me this is unlikely.  It's very likely.

     To recapitulate:

     - You have an ArrayList that is supposed to contain objects that
implement MyCustomInterface.

     - You have an object that is known to be a Component.

     - There are lots and lots and lots of Component classes that do
not implement MyCustomInterface.

     - Therefore, it is at the very least "suspicious" that a list of
MyCustomInterface instances is being examined for the presence of
something that (for all Java knows) needn't implement MyCustomInterface.

     It certainly doesn't strike me as an "error" to check for the
presence of something that isn't there, or even of something that
might turn out to be there under a different guise (a Component
that does, in fact, implement MyCustomInterface).  Nonetheless, it
does seem "suspicious," just as it would be "suspicious" to look
for a raw Component in a List<JButton>.  Not as suspicious as looking
for a JButton in a List<String>, but certainly odd.

     You've shown no code so I can't make a solid recommendation,
but here are a few things you might consider:

     - Use an ArrayList<Component>

     - if (comp instanceof MyCustomInterface
	   && list.contains((MyCustomInterface) comp))

     - @SuppressWarnings plus a lengthy comment

     I would *not* recommend defeating the warning altogether, as
that would apply to a much wider scope.  If something you're cooking
sets off the smoke detector, it would be ill-advised to respond by
taking the batteries out of all detectors everywhere ...

-- 
esosman@comcast-dot-net.invalid
Thirteen hundred one days to go.

Back to comp.lang.java.programmer | Previous | Next — Previous in thread | Next in thread | Find similar | Unroll thread


Thread

Eclipse Eric Douglas <e.d.programmer@gmail.com> - 2017-06-28 07:57 -0700
  Re: Eclipse Eric Douglas <e.d.programmer@gmail.com> - 2017-06-28 09:04 -0700
    Re: Eclipse Eric Douglas <e.d.programmer@gmail.com> - 2017-06-28 12:07 -0700
      Re: Eclipse Eric Douglas <e.d.programmer@gmail.com> - 2017-06-29 06:05 -0700
        Re: Eclipse Jerry Stuckle <jstucklex@attglobal.net> - 2017-06-29 09:32 -0400
          Re: Eclipse Eric Douglas <e.d.programmer@gmail.com> - 2017-06-29 06:42 -0700
        Re: Eclipse Eric Sosman <esosman@comcast-dot-net.invalid> - 2017-06-29 09:47 -0400
          Re: Eclipse Andreas Leitgeb <avl@logic.at> - 2017-06-30 14:47 +0000
            Re: Eclipse Eric Douglas <e.d.programmer@gmail.com> - 2017-06-30 08:22 -0700
              Re: Eclipse Eric Douglas <e.d.programmer@gmail.com> - 2017-07-07 06:19 -0700
                Re: Eclipse Andreas Leitgeb <avl@logic.at> - 2017-07-13 09:29 +0000
        Re: Eclipse Martin Gregorie <martin@address-in-sig.invalid> - 2017-06-29 17:18 +0000
          Re: Eclipse Eric Douglas <e.d.programmer@gmail.com> - 2017-06-29 11:08 -0700
            Re: Eclipse Martin Gregorie <martin@address-in-sig.invalid> - 2017-06-29 18:58 +0000
              Re: Eclipse Eric Douglas <e.d.programmer@gmail.com> - 2017-06-29 12:55 -0700
                Re: Eclipse Martin Gregorie <martin@address-in-sig.invalid> - 2017-06-29 21:31 +0000
                Re: Eclipse Eric Douglas <e.d.programmer@gmail.com> - 2017-06-30 04:55 -0700
                Re: Eclipse Martin Gregorie <martin@address-in-sig.invalid> - 2017-06-30 13:02 +0000
              Re: Eclipse Eric Sosman <esosman@comcast-dot-net.invalid> - 2017-06-29 16:34 -0400
                Re: Eclipse Eric Douglas <e.d.programmer@gmail.com> - 2017-06-29 13:49 -0700
                Re: Eclipse Eric Sosman <esosman@comcast-dot-net.invalid> - 2017-06-29 18:16 -0400
  Re: Eclipse Arne Vajhøj <arne@vajhoej.dk> - 2017-07-02 11:56 -0400

csiph-web