Implementing an interface in eclipse

A

An Do

Using IntelliJ, I would be able to implement an interface whilst having
it open in the editor. You could open the context window using the
keyboard and choose to implement interface and magically the
implementation appears complete with the statement "... implements
SomeInterface"

Does anyone know how to do the same in eclipse so I don't have to open
that New Class window and manually choose the interface?
 
N

NeoGeoSNK

Using IntelliJ, I would be able to implement an interface whilst having
it open in the editor. You could open the context window using the
keyboard and choose to implement interface and magically the
implementation appears complete with the statement "... implements
SomeInterface"

Does anyone know how to do the same in eclipse so I don't have to open
that New Class window and manually choose the interface?

What do you mean about manually?
you can right click the source file and select refactor -> Extract
Interface...
to implements an interface?
 
A

An Do

NeoGeoSNK said:
What do you mean about manually?
you can right click the source file and select refactor -> Extract
Interface...
to implements an interface?

Sorry I should explain a little more clearly. Let's say I have an
interface "Foo". I want to create an implementation of that interface
called "FooImpl". Using IntelliJ, all I would have to do is have my
mouse in the editor window, open a context window and choose something
like 'Implement Interface' and then it would automatically create
"FooImpl".

Is there a way of implementing an interface as quickly as this using
Eclipse? Because as far as I have seen, you have to go do something
like: New > Class > Type in 'FooImpl' > Choose an interface > Click Finish
 
P

Peter Duniho

[...]
Is there a way of implementing an interface as quickly as this using
Eclipse? Because as far as I have seen, you have to go do something
like: New > Class > Type in 'FooImpl' > Choose an interface > Click
Finish

I can't compare with the IDE you're used to, not being familiar with it.
But generally speaking, I use Eclipse's auto-implement functionality in
one of two ways. Either I'm starting a new class from scratch, in which
case I just add the interface(s) I intend to implement to the list in the
dialog box for the new class, and then check the box that says to
implement interfaces (this seems like the process you're talking about
above). Or I'm adding an interface to a class, in which case after I've
added the "implements XXX" to the class declaration, Eclipse will show a
little error icon to the left of that line, which I can click and choose
the "implement..." option.

In either case, all the necessary stub methods for the interface will be
added to the class, of which you can then of course replace the bodies
with your own functionality.

I don't know of any way to add a class to a project other than going
through the "new class" dialog, but assuming one exists, it probably has a
similar way to specify interfaces to implement. The fact that I'm not
aware of the technique doesn't mean anything, really...I've only been
using Eclipse for a few months.

I don't really understand your description of how your other IDE does it
though. You seemed to have left out steps for telling the IDE the name of
your class and the name of the interface to implement, which account for
half of the steps you describe as too much work in Eclipse. Maybe it's
just because I don't know enough about your other IDE, but I don't really
see how even the "long way" in Eclipse is that much work.

Eclipse has a bunch of other ways to get at the refactoring features, and
my guess is that if neither of those methods works for you, there's some
other way that's more like what you're used to or more like what you
want. I recommend just exploring a bit and see what's what.

Pete
 
A

An Do

Peter said:
[...]
Is there a way of implementing an interface as quickly as this using
Eclipse? Because as far as I have seen, you have to go do something
like: New > Class > Type in 'FooImpl' > Choose an interface > Click
Finish

I can't compare with the IDE you're used to, not being familiar with
it. But generally speaking, I use Eclipse's auto-implement
functionality in one of two ways. Either I'm starting a new class from
scratch, in which case I just add the interface(s) I intend to implement
to the list in the dialog box for the new class, and then check the box
that says to implement interfaces (this seems like the process you're
talking about above). Or I'm adding an interface to a class, in which
case after I've added the "implements XXX" to the class declaration,
Eclipse will show a little error icon to the left of that line, which I
can click and choose the "implement..." option.

In either case, all the necessary stub methods for the interface will be
added to the class, of which you can then of course replace the bodies
with your own functionality.

I don't know of any way to add a class to a project other than going
through the "new class" dialog, but assuming one exists, it probably has
a similar way to specify interfaces to implement. The fact that I'm not
aware of the technique doesn't mean anything, really...I've only been
using Eclipse for a few months.

I don't really understand your description of how your other IDE does it
though. You seemed to have left out steps for telling the IDE the name
of your class and the name of the interface to implement, which account
for half of the steps you describe as too much work in Eclipse. Maybe
it's just because I don't know enough about your other IDE, but I don't
really see how even the "long way" in Eclipse is that much work.

Eclipse has a bunch of other ways to get at the refactoring features,
and my guess is that if neither of those methods works for you, there's
some other way that's more like what you're used to or more like what
you want. I recommend just exploring a bit and see what's what.

Pete

Thanks for the reply. Again it's probably hard to describe it unless I
was just able to show you how I would do it in IntelliJ. But yes, I did
miss the part where a dialog would come up and it would ask if you
wanted to change the name of the implementation class. But it defaulted
to FooImpl so you would just have to press enter. It's more the case
that if you had an interface, you could hit ctl-enter to implement the
class, then a dialog would come up asking if you wanted to change the
default name and then you would hit enter again to accept FooImpl and
that would be it.

It's more the case that I could first create an interface and within one
second, have a class implementing that interface. Whereas I have found
it tedious in Eclipse having to create the interface and then having to
move my mouse to the explorer pane, right click, choose new, type in the
implementation class, find the interface I want the implementation to
implement and then click ok. I guess I just wanted to know if Eclipse
had a faster way to an implementation like IntelliJ as I was use to the
speed and ease of not having to use the mouse at all and do it all in
one second.

thanks again.
 

Ask a Question

Want to reply to this thread or ask your own question?

You'll need to choose a username for the site, which only take a couple of moments. After that, you can post your question and our members will help you out.

Ask a Question

Members online

No members online now.

Forum statistics

Threads
473,744
Messages
2,569,483
Members
44,901
Latest member
Noble71S45

Latest Threads

Top