| How know if a method is part of an interface? |
|
 |
Index ‹ java-programmer
|
- Previous
- 1
- Applet no longer works in IE - problem fixedHi Andrew,
It seems that the source of my problem is the fact that I upgraded
from Eclipse 2.1.1. to 3.2.0. After testing with the latest working
version of my applet I found out that the compiler compliance setting
has to be 1.3 for the applet to work in IE. Default setting is 1.4.
:-|
thanks, Mark.
On Tue, 15 Nov 2005 22:35:10 +0100, Mark <email***@***.com> wrote:
>Sorry, yes I forgot. I don't like frames but how else can you prevent
>having to reload the applet every time you load another page?
>I have removed the redirection.
>This is the HTML:
>
><!DOCTYPE HTML PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
> "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
><HTML xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
><HEAD>
><TITLE>Smorf applet 360x360</TITLE>
><META NAME="ROBOTS" CONTENT="NOINDEX, NOFOLLOW">
><META http-equiv="Content-type" content="text/html;
>charset=iso-8859-1" />
><meta http-equiv="imagetoolbar" content="no" />
><meta content="TRUE" name="MSSmartTagsPreventParsing" />
><link rel="stylesheet" type="text/css" href="styles.css" />
><script language="javascript">
> if(self.location==top.location)self.location="frames360.html";
></script>
></HEAD>
><BODY>
> <APPLET
> code="SmorfApplet.class"
> height=360 width=360
> name="smorf"
> archive="smorfob.jar, jazz3d3.jar, jazz3d3_primitives.jar"
> </APPLET>
></BODY>
></HTML>
>
>anyway I found out creating the package isn't the problem. I put all
>the classes in a single package and jar file, the problem is still
>there.
>
>Mark.
>
>On Tue, 15 Nov 2005 21:20:49 GMT, Andrew Thompson
><email***@***.com> wrote:
>
>>Mark wrote:
>>
>>> The applet I'm testing is here:
>>> http://www.smorf.nl/smorfde/frames360.html
>>
>>That's a frames based page, and when I try to get
>>the applet itself*, I get directed back to the frames
>>page.
>>
>>* I need to see the HTML source.
>>
>>Fix that and I'll help.
- 1
- 3
- mail parser ?Hi
I am programming a smtp proxy and i would like to parse the email (in
rfc 822 format). Does a library already exist ?
many thanks
- 4
- MyEclipse - XDoclet problem Hi
I'm trying to create a simple EJB by the help of myeclipse
1. i've created EJB class
2. selected myeclipse - XDoclet standart EJB
and after running myeclipse - XDoclet only 'home' interface has been
generated
could anybody explain why 'object' interface hasn't been generated
I use
Eclipce Version: 3.0.0 Build id: 200310101454
MyEclipse Version: 3.6.4
code:
----------------------------------------------------------------------------
package hello;import java.rmi.RemoteException;import
javax.ejb.CreateException;import javax.ejb.EJBException;import
javax.ejb.SessionBean;import javax.ejb.SessionContext;/** * XDoclet-based
stateless session bean. The class must be declared * public, according to
the EJB specification. * * To generate code: * * * a.. Add Standard EJB
module to XDoclet project properties * b.. Customize XDoclet configuration
* c.. Run XDoclet * * * Please see the included XDoclet Overview * and
the XDoclet Reference in the help system for details * * @ejb.bean name =
"HelloWorld" * type = "Stateless" * display-name =
"HelloWorld" * description = "HelloWorld EJB" *
view-type = "remote" * jndi-name = "ejb/HelloWorldHome" */public
class HelloWorld implements SessionBean { /** The SessionContext */ private
SessionContext context; /** * An ejbCreate method as required by the EJB
specification. * * The container calls the instance's ejbCreate method
whose * signature matches the signature of the create method invoked *
by the client. The input parameters sent from the client are passed to *
the ejbCreate method. Each session bean class must have at * least one
ejbCreate method. The number and signatures * of a session bean's create
methods are specific to each * session bean class. * * @throws
CreateException Thrown if the instance could not perform * the function
requested by the container because of an system-level error. * *
@ejb.create-method */ public void ejbCreate() throws CreateException { }
/** * The ejbActivate() method as required by the EJB specification. * *
The activate method is called when the instance is activated from its *
passive" state. The instance should acquire any resource that it has *
released earlier in the ejbPassivate() method. * * This method is called
with no transaction context. * * @throws EJBException Thrown if the
instance could not perform * the function requested by the container
because of an system-level error. */ public void ejbActivate() throws
EJBException { } /** * The ejbPassivate() method as required by the EJB
specification. * * The activate method is called when the instance is
activated from * its "passive" state. The instance should acquire any
resource that * it has released earlier in the ejbActivate() method. *
* This method is called with no transaction context. * * @throws
EJBException Thrown if the instance could not perform * the function
requested by the container because of an system-level error. */ public void
ejbPassivate() throws EJBException { } /** * The ejbRemove() method as
required by the EJB specification. * * A container invokes this method
before it ends the life of the * session object. This happens as a result
of a client's invoking * a remove operation, or when a container decides
to terminate the * session object after a timeout. * * This method
is called with no transaction context. * * @throws EJBException Thrown
if the instance could not perform * the function requested by the
container because of an system-level error. */ public void ejbRemove()
throws EJBException { } /** * Set the associated session context. The
container calls this method * after the instance creation. * * The
enterprise bean instance should store the reference to the context *
object in an instance variable. * * This method is called with no
transaction context. * * @throws EJBException Thrown if the instance
could not perform * the function requested by the container because of an
system-level error. */ public void setSessionContext(SessionContext
newContext) throws EJBException { context = newContext; } /** * An
example business method * * @ejb.interface-method view-type = "remote" *
* @throws EJBException Thrown if the instance could not perform * the
function requested by the container because of an system-level error. */
public void m1() throws EJBException { // rename and start putting your
business logic here } /** * An example business method * *
@ejb.interface-method view-type = "remote" * * @throws EJBException
Thrown if the instance could not perform * the function requested by the
container because of an system-level error. */ public void m2() throws
EJBException { // rename and start putting your business logic here }}
----------------------------------------------------------------------------
Thanks a lot !
- 5
- Jtable header clickable?HI!
I've been trying to find information on how to make the header of a
JTable clickable. I.e I want my users to be able to click the header
and the program do something smart (possibly sorting data, or
whatever)
I only seem to find references to dead-links when I search on deja,
and amazingly google did not seem to help much. Can anyone point me
the general direction on how to do this?
regards
Daniel
- 5
- 6
- SOLVED: How to read MANIFEST.MF from pluginHi,
here is a way to access "your" manifest, i.e. the manifest of the jar
your class is loaded from. It only works for SunPlugin. In other cases
you may have another ClassLoader not supporting a public
findResource-method. The always public getResource unfortunatly
prefers to return resources returned by the parent's getResource if it
is not null. That's why you would get the manifest of rt.jar. Is there
any good reason to revert the principle 'local hides global' in case
of getting resources? Anyway, here it is:
import java.util.jar.Manifest;
import sun.applet.AppletClassLoader;
...
AppletClassLoader cl = (AppletClassLoader)
getClass().getClassLoader();
URL manifest_url = cl.findResource("META-INF/MANIFEST.MF");
Manifest manifest = new Manifest(manifest_url.openStream());
Yours,
Albrecht
- 6
- Where to find web game programmer?Where is the best place for me to find a java programmer to write a
few games for a website? These would be mostly casino style games
that would interact with our existing database to take advantage of
the points/tokens our users already have obtained.
Please email me if interested, or, send me to the best place to find
such a person or group of people..
c b r o m l e y @ g m a i l . c o m
- 6
- Sound Recording - Runs out of memoryI think you may find examples from this website very helpful:
http://www.jsresources.org
Regards,
JM
"Christiaan" <email***@***.com> wrote in message
news:email***@***.com...
> Hi,
>
> Here is a simple sound recording program to record sounds via your
> mic.The problem is that you read the sound bytes into a
> ByteArrayOutputStream and if it becomes to big you get -
> java.lang.OutOfMemoryError.
>
> What can I do to overcome this , I have tried to write the incomming
> bytes to file 1st and then from the file into the audioInputStream ,
> but I couldn't get that to work - here is my code (I used jdk1.3 and
> jdk1.4):
>
>
>
> If you copy the code into a IDE the place where the exception are
> thrown are on line 236.
>
> /*
> Christiaan Pansegrouw
> 22/05/2003
> Simple Sound Recording app
> Contains a start & stop buttom & saves to a wave file -
> "userHomeDir"\SimpleMicRecording\SimpleSound.wav
>
> */
>
> import javax.swing.*;
> import java.awt.*;
> import java.awt.event.*;
> import javax.sound.sampled.*;
> import java.io.*;
>
>
>
>
> public class LaunchSimpleSound
> {
> public static void main(String [] args)
> {
> SimpleSound ss = new SimpleSound();
> }
> }
>
>
> class SimpleSound extends JFrame implements ActionListener
> {
>
> private String userHomeDir = System.getProperty("user.home");
> private String fileSeperator =
> System.getProperty("file.separator");
>
> private JPanel mainPanel;
> private JButton cmdStartRecord;
> private JButton cmdStopRecord;
> AudioInputStream audioInputStream;
> double duration;
> Capture capture = new Capture();
>
> public SimpleSound()
> {
> makeGUI();
>
> }
>
>
> public void makeGUI()
> {
> mainPanel = new JPanel();
> cmdStartRecord = new JButton("Start");
> cmdStopRecord = new JButton("Stop");
> cmdStopRecord.setEnabled(false);
>
>
> cmdStartRecord.addActionListener(this);
> cmdStopRecord.addActionListener(this);
>
>
> mainPanel.add(cmdStartRecord);
> mainPanel.add(cmdStopRecord);
>
> Container c = this.getContentPane();
>
> c.add(mainPanel , BorderLayout.CENTER);
> this.pack();
> this.setDefaultCloseOperation(EXIT_ON_CLOSE);
> this.setVisible(true);
>
> }
>
>
> public void actionPerformed(ActionEvent ae)
> {
> Object source = ae.getSource();
>
> if (source == cmdStartRecord)
> {
> cmdStartRecord.setEnabled(false);
> cmdStopRecord.setEnabled(true);
> capture.start();
>
> }
> else
> {
> cmdStartRecord.setEnabled(true);
> cmdStopRecord.setEnabled(false);
> capture.stop();
> // SaveToFile();
> }
> }
>
>
> public void SaveToFile()
> {
> if (audioInputStream == null)
> {
> System.out.println("Nothing to save ->someting bad happend !!!");
> System.out.println("cashing & burning . .. .");
> System.exit(0);
> }
> else
> {
>
> }
>
> try
> {
> audioInputStream.reset();
> }
> catch(Exception e)
> {
> System.out.println("Unable to reset audioStream in save method");
> System.out.println("Exitting . .. .");
> System.exit(0);
> }
> File x = new File(userHomeDir + fileSeperator +
> "SimpleMicRecording" + fileSeperator + "SimpleSound.wav");
> if (!(x.exists())){
> File dirs = x.getParentFile();
> dirs.mkdir();
> }
> File file = new File(userHomeDir + fileSeperator +
> "SimpleMicRecording" + fileSeperator + "SimpleSound.wav");
> try
> {
> if (AudioSystem.write(audioInputStream , AudioFileFormat.Type.WAVE
> , file) == -1)
> {
> System.out.println("Error");
> }
> }
> catch(Exception e)
> {
> System.out.println("Oh-no!!!");
> }
> }
>
> class Capture implements Runnable
> {
> private AudioFormat.Encoding encoding;
> private float rate;
> private int sampleSize;
> private int channels;
> private int frameSize;
> private boolean bigEndian;
>
>
>
> TargetDataLine line; //define a line - a line from witch audio can
> be read
> Thread thread;
>
> public void start()
> {
> thread = new Thread(this);
> thread.setName("Capture Audio");
> thread.start();
> }
>
>
> public void stop()
> {
> thread = null;
> }
>
> public void run()
> {
> duration = 0;
> audioInputStream = null;
>
> setupFormat();
>
> //define the required attributes for the line &
> //make sure a compatible line is supported
> AudioFormat format = new
> AudioFormat(AudioFormat.Encoding.PCM_SIGNED ,44100, 16,2 , 4 ,44100 ,
> true);
>
> //does not want to work !!!!????
> //AudioFormat format = new AudioFormat(encoding , rate , sampleSize
> , channels , frameSize , rate , bigEndian);
>
> DataLine.Info info = new DataLine.Info(TargetDataLine.class ,
> format);
>
> if (!AudioSystem.isLineSupported(info))
> {
> System.out.println("Line matching " + info +" not supported");
> System.out.println("Exitting the application . . .");
> System.exit(0);
> }
>
> //get & open target data line for capture
>
> try
> {
> line = (TargetDataLine) AudioSystem.getLine(info);
> line.open(format , line.getBufferSize());
> }
> catch(LineUnavailableException ex)
> {
> System.out.println("Unable to open the line");
> System.out.println("Exitting application . . .");
> System.exit(0);
> }
> catch(SecurityException ex)
> {
> System.out.println("A security exception occured");
> System.out.println("Exitting application . . .");
> System.exit(0);
> }
> catch(Exception ex)
> {
> System.out.println("Some exception occured");
> System.out.println("Exitting application . . .");
> System.exit(0);
> }
>
> ByteArrayOutputStream out = new ByteArrayOutputStream();
> int frameSizeInBytes = format.getFrameSize();
> int bufferLengthInFrames = line.getBufferSize() / 8;
> int bufferLengthInBytes = bufferLengthInFrames * frameSizeInBytes;
> byte [] data = new byte[bufferLengthInBytes];
> int numBytesRead;
>
> line.start();
>
> //while the thread is running , write whatever is comming
> //through the line(TargetDataLine) , to the ByteArrayOutputStream
> while (thread != null)
> {
> //Reads audio data from the data line's input buffer
> //if eoi then break out of the while-loop
>
> //The number of bytes to be read must represent an integral
> //number of sample frames, such that:
> // [ bytes read ] % [frame size in bytes ] == 0
> if ((numBytesRead = line.read(data , 0 , bufferLengthInBytes)) ==
> -1)
> {
> break;
> }
> //here is the problem
> out.write(data ,0 , numBytesRead);
> }
>
>
> //we reached the end of the stream . stop & close the line
> line.stop();
> line.close();
> line = null;
>
> //stop & close the output stream
> try
> {
> //Flushes this output stream and forces any buffered
> //output bytes to be written out. The general contract
> //of flush is that calling it is an indication that, if
> //any bytes previously written have been buffered by the
> //implementation of the output stream, such bytes should
> //immediately be written to their intended destination.
> out.flush();
> out.close();
> }
> catch(IOException ex)
> {
> System.out.println("IO Error occurered (flussing the
> BufferArrayOutputStream)");
> System.out.println(" . . . but carring on");
> }
>
> //load bytes in to audio input stream for saving
>
> byte audioBytes[] = out.toByteArray();
> ByteArrayInputStream bais = new ByteArrayInputStream(audioBytes);
> audioInputStream = new AudioInputStream(bais , format ,
> audioBytes.length / frameSizeInBytes);
>
> long milliseconds =
> (long)((audioInputStream.getFrameLength() * 1000) /
> format.getFrameRate());
> duration = milliseconds / 1000.0;
>
>
> try
> {
> audioInputStream.reset();
> }
> catch(Exception e)
> {
> System.out.println("Error resetting audioInputStream");
> System.out.println("Exitting application . . .. ");
> System.exit(0);
> }
>
> if (audioInputStream == null)
> {
> System.out.println("?????????");
> }
> SaveToFile();
>
> }
>
> private void setupFormat()
> {
> AudioFormat.Encoding encoding = AudioFormat.Encoding.PCM_SIGNED;
> rate = (float)44100;
> sampleSize = 16;
> channels = 2;
> frameSize = (sampleSize/8)*channels;
> bigEndian = true;
> }
> }
> }
- 6
- Great SWT ProgramIn article <email***@***.com>,
<email***@***.com> wrote:
> On Sep 17, 5:43 am, email***@***.com <email***@***.com> wrote:
> > Just out of curiosity, have you ever used vim or gvim? what do
> > you normally use for editing text -- or does it depend on the use
> > of the text (e.g., an IDE if it's source code, a word processor
> > if it's a formatted document)?
>
> It depends on the circumstances, but it's always something sane.
So, do you mean to imply by this that you've never used vim or gvim?
Just asking.
> That
> means a) its interface was designed and developed sometime after the
> invention of the mouse;
Presumably true of gvim, since it allows a lot of operations to be
done using a mouse.
> b) said interface is NOT just bolted on over
> something archaic (no doubt with half the wingnuts loose and the other
> half missing);
It seems to me that the actual operations involved in editing
text files haven't changed that much -- find, insert, delete,
etc. -- so a program that was able to perform them with a primitive
interface should be equally capable of performing them with a more
sophisticated interface, and the fact that the underlying code has
been in use for many years might improve the odds that any bugs
have been found and fixed.
I repeat -- have you ever used any of these tools you're slamming?
> c) the authors have indeed heard of and applied CUA so
> someone who knows how to use normal software can immediately be
> productive using theirs, and only learn the different/additional
> features vs. other similar applications; and
So apparently you've changed your mind about "CUA" being a
cryptic term?
( http://groups.google.com/group/comp.emacs/msg/7bbbe22873f7f9ac )
> d) there's no retro/
> nostalgic stuff going on -- it's not designed by people who pine for
> the days when 640K really was enough for anybody. :)
Well, when Mr. Gates (?) was saying that, I was probably still
mostly ignorant of the PC world; I started out on mainframes,
and it took a long time for me to regard PCs as anything but
toys. (Then again, I think one could make a case for the idea
that the way most people use them these days *is* as toys.
But I digress.)
I do pine for the days when more people believed in the Unix idea
of tools being simple programs that did simple jobs well [*] and
could be combined under the user's control to do more complex jobs.
But -- "yeah well".
[*] Rather than attempting to do everything the programmer and/or
the marketing department can think of, with mixed success.
--
B. L. Massingill
ObDisclaimer: I don't speak for my employers; they return the favor.
- 13
- Text Field InputI have a JFrame where I hold visible only and employee ID number. I
can input the employee number, retrieve the employee information from a
database, and then display the information on the screen.
I then want to enter hours on the same form. I can bring the
appropriate text field visible, but can't seem to get the code to halt
execution in order to input hours and then compute payroll.
How do I bring a new field visible and then halt code for the input,
several times, on the same form, bringing only the appropriate fields
visible as necessary?
Hope that made sense.
- 15
- To class or to methodI have a class
public class CascadeAction {
...
public CascadeAction(JDesktopPane ... ) {
}
...
public void setIgnoreIconified(...) {
...
}
public void actionPerformed(ActionEvent evt) {
...
}
...
}
Instead of having a class, is the proper way to create a method :
public void cascadeFrames(JDesktopPane desktopPane, int layer, boolean
ignoreIconified) {
...
}
I don't think I should place this method in a subclass of JDesktopPane
since doing so will make it impossible for other users to use the
cascade feature if they already have their own custom JDesktopPane.
Please advice me on the proper way.
- 15
- making indented XMLI could swear that this used to work for me, but when I run the
following code I get:
<?xml version="1.0" encoding="UTF-8"?>
<a><b><c/></b></a>
which is not the:
<a>
<b>
<c/>
</b>
</a>
that I want and was expecting. I'm running JDK 1.4.2_03 on W2K with
the latest Xalan and Xerces.
I've tried running it like the following:
java -classpath .;xercesImpl.jar;xalan.jar;xml-apis.jar PrintTest
java -Djava.endorsed.dirs=. -classpath
.;xercesImpl.jar;xalan.jar;xml-apis.jar PrintTest
java -Xbootclasspath/p:xercesImpl.jar;xalan.jar;xml-apis.jar
-classpath .;xercesImpl.jar;xalan.jar;xml-apis.jar PrintTest
I'm at a loss here. Can somebody throw me a bone?
Cheers.
Steve Maring
steve at maring dot org
import java.io.StringReader;
import java.io.PrintWriter;
import javax.xml.parsers.DocumentBuilderFactory;
import javax.xml.parsers.DocumentBuilder;
import javax.xml.transform.TransformerFactory;
import javax.xml.transform.Transformer;
import javax.xml.transform.stream.StreamResult;
import javax.xml.transform.dom.DOMSource;
import javax.xml.transform.OutputKeys;
import org.w3c.dom.Document;
import org.xml.sax.InputSource;
public class PrintTest
{
public static void main( String[] args )
{
try
{
String xml = "<a><b><c></c></b></a>";
PrintWriter printWriter = new PrintWriter( System.out, true
);
DocumentBuilderFactory factory =
DocumentBuilderFactory.newInstance();
DocumentBuilder builder = factory.newDocumentBuilder();
Document doc = builder.parse(
new InputSource( new StringReader( xml ) ) );
TransformerFactory transFactory =
TransformerFactory.newInstance();
Transformer transformer = transFactory.newTransformer();
transformer.setOutputProperty( OutputKeys.METHOD, "xml" );
transformer.setOutputProperty( OutputKeys.INDENT, "true" );
transformer.setOutputProperty(
OutputKeys.OMIT_XML_DECLARATION, "true" );
transformer.setOutputProperty(
"{http://xml.apache.org/xslt}indent-amount", "4" );
transformer.transform(
new DOMSource( doc ), new StreamResult( printWriter ) );
}
catch ( Exception e )
{
e.printStackTrace();
}
}
}
- 15
- A good text editor for JAVA?In article <email***@***.com>, email***@***.com wrote:
>In article <email***@***.com>,
>Roedy Green <email***@***.com> wrote:
>>On Thu, 1 Dec 2005 14:23:34 -0700, "Monique Y. Mudama"
>><email***@***.com> wrote, quoted or indirectly quoted someone who
>>said :
>>
>>>s/days/years
>>
>>I found EMACs drove me nearly nuts. My editing CUA reflexes were well
>>below conscious control. It was like being given a keyboard with all
>>the keys randomly rearranged. Even the mouse worked a different way.
>>Even its legendary programmability could not make up for that.
>>
>>Even if you do adjust, if you go back to another CUA editor I found
>>the reflexes don't recover. I am "uniligual" as a typist. I can't be
>>proficient on two editors for the same reason I can't rapidly type
>>both QWERTY and DSK. See http://mindprod.com/jgloss/dsk.html
>
>Sing it. I also have had trouble trying to become multilingual with
>regard to editors, though I'm a vim bigot who gets annoyed when she
>has to use .... maybe "CUA editors" is the right term. As you say,
>knowing which keys to use for common editing tasks becomes a reflex
>action, and trying to use something that uses different keys for
>the same tasks is not only irritating but also can seem to mess up
>the reflexes, which is a whole other level of irritation.
>
>However, I had an interesting exchange in comp.editors recently with
>someone who says that he uses lots of tools on lots of platforms and
>claims that *if you practice enough* you can develop the ability
>to switch back and forth seamlessly. But he claims that it takes
>a *lot* of practice. The thread is in comp.editors, subject line
>"GENERAL: Formatting text in Linux?", participants me and a Brian
>Masinick, if anyone wants to find it in the archives. (Sorry about
>not providing a URL or message IDs, but I'm not sure how to do that
>unambiguously.)
>
[snip]
It's all about how you want to use your time. I could use my time learning
lots of different tools and editors or I could find a handful of tools and use
my time to look at new apis/languages or work on open source projects, etc.
Eric
- 15
- buggy regexpHello all!
The following line hangs in Java:
Pattern.matches("((<BR>)|([^<>]+))*", "aaaaaaaaaaaaaaaaaaaaaaaa
<BR><Bx>")
What's wrong with the regular expression?
Thanks in advance
Ilya
|
| Author |
Message |
Andrea Polci

|
Posted: 2004-6-26 3:21:00 |
Top |
java-programmer, How know if a method is part of an interface?
I have a class named MyClass implementing an interface named MyInterface.
I have also an instance of java.lang.reflect.Method describing a method
of MyClass (is the parameter of the invoke method in an
java.lang.reflect.InvocationHandler).
I need to know if Method is part of MyInterface or not.
Is there a way other than checking the method name and parameters type?
Thanks,
Andrea
|
| |
|
| |
 |
Oscar kind

|
Posted: 2004-6-26 5:47:00 |
Top |
java-programmer >> How know if a method is part of an interface?
Andrea Polci <email***@***.com> wrote:
> I have a class named MyClass implementing an interface named MyInterface.
>
> I have also an instance of java.lang.reflect.Method describing a method
> of MyClass (is the parameter of the invoke method in an
> java.lang.reflect.InvocationHandler).
> I need to know if Method is part of MyInterface or not.
> Is there a way other than checking the method name and parameters type?
See Method.getDeclaringClass(), which gives you the class (or interface)
that declared (as opposed to implemented) the method.
--
Oscar Kind http://home.hccnet.nl/okind/
Software Developer for contact information, see website
PGP Key fingerprint: 91F3 6C72 F465 5E98 C246 61D9 2C32 8E24 097B B4E2
|
| |
|
| |
 |
Andrea Polci

|
Posted: 2004-6-26 7:11:00 |
Top |
java-programmer >> How know if a method is part of an interface?
Oscar kind wrote:
> Andrea Polci <email***@***.com> wrote:
>
>>I have a class named MyClass implementing an interface named MyInterface.
>>
>>I have also an instance of java.lang.reflect.Method describing a method
>>of MyClass (is the parameter of the invoke method in an
>>java.lang.reflect.InvocationHandler).
>>I need to know if Method is part of MyInterface or not.
>>Is there a way other than checking the method name and parameters type?
>
>
> See Method.getDeclaringClass(), which gives you the class (or interface)
> that declared (as opposed to implemented) the method.
No, aMethod.getDeclaringClass() give me MyClass.class even if aMethod is
declared into MyInterface.
Andrea
|
| |
|
| |
 |
P.Hill

|
Posted: 2004-6-26 8:41:00 |
Top |
java-programmer >> How know if a method is part of an interface?
Andrea Polci wrote:
>>> I have also an instance of java.lang.reflect.Method describing a
>>> method of MyClass (is the parameter of the invoke method in an
>>> java.lang.reflect.InvocationHandler).
>>> I need to know if Method is part of MyInterface or not.
>>> Is there a way other than checking the method name and parameters type?
Can you tell us why? People do the wierdest things with reflection
and I'm wondering why you'd want to know. As part of some IDE plugin or ANT
tool it sounds great, but otherwise it sounds a bit odd.
-Paul
|
| |
|
| |
 |
Sudsy

|
Posted: 2004-6-26 9:48:00 |
Top |
java-programmer >> How know if a method is part of an interface?
Andrea Polci wrote:
<snip>
>> See Method.getDeclaringClass(), which gives you the class (or interface)
>> that declared (as opposed to implemented) the method.
>
> No, aMethod.getDeclaringClass() give me MyClass.class even if aMethod is
> declared into MyInterface.
So did you check out the Class#isAssignableFrom( Class ) method? I don't
have time to try it myself...but then I don't have the problem! ;-)
|
| |
|
| |
 |
Chris Uppal

|
Posted: 2004-6-26 15:27:00 |
Top |
java-programmer >> How know if a method is part of an interface?
Andrea Polci wrote:
> I need to know if Method is part of MyInterface or not.
> Is there a way other than checking the method name and parameters type?
No. You have to test the name/parameters yourself.
-- chris
|
| |
|
| |
 |
Andrea Polci

|
Posted: 2004-6-26 17:31:00 |
Top |
java-programmer >> How know if a method is part of an interface?
Sudsy wrote:
> Andrea Polci wrote:
> <snip>
>
>>> See Method.getDeclaringClass(), which gives you the class (or interface)
>>> that declared (as opposed to implemented) the method.
>>
>>
>> No, aMethod.getDeclaringClass() give me MyClass.class even if aMethod
>> is declared into MyInterface.
>
>
> So did you check out the Class#isAssignableFrom( Class ) method? I don't
> have time to try it myself...but then I don't have the problem! ;-)
It doesn't help. Consider this:
public interface AInterface {
void methodA();
}
public interface BInterface {
void methodB();
}
public class MyClass {
void methodA() { ... }
void methodB() { ... }
}
If aMethod is the instance of java.lang.reflect.Method that represent
methodA we have:
aMethod.getDeclaringClass().equals(MyClass.class);
BInterface.isAssignableFromb(aMethod.getDeclaringClass()) == true;
AInterface.isAssignableFromb(aMethod.getDeclaringClass()) == true;
So we can't say if aMethod is declared in AInterface or BInterface.
Andrea
|
| |
|
| |
 |
Andrea Polci

|
Posted: 2004-6-26 18:20:00 |
Top |
java-programmer >> How know if a method is part of an interface?
P.Hill wrote:
> Andrea Polci wrote:
>
>>>> I have also an instance of java.lang.reflect.Method describing a
>>>> method of MyClass (is the parameter of the invoke method in an
>>>> java.lang.reflect.InvocationHandler).
>>>> I need to know if Method is part of MyInterface or not.
>>>> Is there a way other than checking the method name and parameters type?
>
>
> Can you tell us why? People do the wierdest things with reflection
> and I'm wondering why you'd want to know. As part of some IDE plugin or
> ANT
> tool it sounds great, but otherwise it sounds a bit odd.
I'll try but it isn't easy in english for me.
I have many classes each exposing some properties (getter/setter
methods) and other methods, some of wich defined in a common interface.
Now I want to attach some common functionality to those properties and
common methods (for example user's permission checking, but not only) so
I have defined a class like this:
public class PermissionChecker {
private Object aObject;
public PermissionChecker(Object obj) {
this.aObject = obj;
}
public vodi setProperty(String propertyName, Object value) {
// Do the permission checking
// ...
PropertyUtils.setProperty(aObject, propertyName, value);
}
public Object getProperty(String propertyName) {
// ...
}
public void doSomething() {
// ...
}
}
I don't know if this is a good solution, but it is the solution we
adopted and I can't change it easily. Consider that usually we accessed
the properties throw reflection and there were few places were we do this.
The problem is that in some code I need to get the functionality of the
PermissionChecker without knowing of it. In that code I access the
object throw some interfaces (implemented by the original class) that
define the properties and the other methods.
I think I can do this with the java.lang.Proxy class.
Consider this code:
public interface MyPropertiesInterface {
public void setName(String name);
public String getName();
}
public interface MyCommonInterface {
public void doSomething();
}
public interface MyInterface
extends MyPropertiesInterface, MyCommonInterface{
}
public class MyClass implements MyInterface { ... }
...
{
MyInterface anObject = ....;
PermissionChecker pcheck = new PermissionChecker(anObject)
invHand = new MyInvocationHandler(pcheck);
MyInterface checkedObject = (MyInterface)Proxy.newProxyInstance(
loader,
new Class[]{ MyInterface.class },
invHand);
// Use the checked object as it was anObject
}
public class MyInvocationHandler
implements java.lang.reflect.InvocationHandler {
PermissionChecker pcheck;
Object anObject;
public MyInvocationHandler(PermissionChecker checker, Object obj) {
pckeck = checker;
anObject = obj;
}
public Object invoke(Object proxy, Method method, Object[] args) {
if(/* method is a property setter, I know how to do */){
// ...
String propertyName = ...;
pckeck.setProperty(propertyName, args[0]);
return null;
}
if(/* method is a property getter, I know how to do */) {
// ...
String propertyName = ...;
return pckeck.getProperty(propertyName);
}
if(/*method belongs to MyCommonInterface, I DON'T KNOW HOW TO DO*/){
// do something special :-)
return ...;
}
method.invoke(anObject, args);
}
}
The problem is in the invoke method. I have to know if the method
belogns to MyMethodsInterface, but I don't know how to do (other than
manually compare the method name and the arguments classes).
Any suggestion?
Andrea Polci
|
| |
|
| |
 |
Chris Smith

|
Posted: 2004-6-26 21:57:00 |
Top |
java-programmer >> How know if a method is part of an interface?
Andrea,
interface A
{
public void someMethod();
}
interface B
{
public void someMethod();
}
class C implements A, B
{
public void someMethod() { }
}
So what do you want as an answer, if you ask where C.someMethod is
declared?
--
www.designacourse.com
The Easiest Way to Train Anyone... Anywhere.
Chris Smith - Lead Software Developer/Technical Trainer
MindIQ Corporation
|
| |
|
| |
 |
Andrea Polci

|
Posted: 2004-6-26 22:07:00 |
Top |
java-programmer >> How know if a method is part of an interface?
Chris Smith wrote:
> Andrea,
>
> interface A
> {
> public void someMethod();
> }
>
> interface B
> {
> public void someMethod();
> }
>
> class C implements A, B
> {
> public void someMethod() { }
> }
>
> So what do you want as an answer, if you ask where C.someMethod is
> declared?
I don't want to know where C.someMethod is declared.
I want to know: is C.someMethod part of interface A?
The answer is "yes".
Andrea
|
| |
|
| |
 |
ram

|
Posted: 2004-6-26 22:19:00 |
Top |
java-programmer >> How know if a method is part of an interface?
Andrea Polci <email***@***.com> writes:
>I want to know: is C.someMethod part of interface A?
>The answer is "yes".
Usually, this would be done at compile time:
(((A)(new C())).someMethod())
If this fails to compile, its not part of the interface.
Actually the whole reason of interfaces in Java is to support
these compile time checks in order to avoid failure during the
execution. Otherwise, the situation would be more like in
Smalltalk, where AFAIK such interfaces do not exist.
(If you want to check it at run time: This should not be
neccessary. But if you dynamically compile code at run time
without human intervention, then you might need this, if the
Java-Code was also generated at run time. In this case the
error messages from the compilation might be inspected.)
|
| |
|
| |
 |
IkRhcmlvIChkcmlua2luZyBjb++sgGVlIGluIHRoZSBv76yDY2XigKYpIg

|
Posted: 2004-6-28 15:10:00 |
Top |
java-programmer >> How know if a method is part of an interface?
Andrea Polci wrote:
> I have a class named MyClass implementing an interface named MyInterface.
>
> I have also an instance of java.lang.reflect.Method describing a method
> of MyClass (is the parameter of the invoke method in an
> java.lang.reflect.InvocationHandler).
> I need to know if Method is part of MyInterface or not.
> Is there a way other than checking the method name and parameters type?
As chris said: You have to test the name/parameters yourself.
Here a simple code fragment:
private static boolean sameSignature(Method a, Method b) {
Class[]ac = a.getParameterTypes();
Class[]bc = b.getParameterTypes();
if(ac.length != bc.length)
return false;
for(int i=0; i<ac.length; i++)
if(ac[i] != bc[i])
return false;
return true;
}
public static boolean methodInInterface(Method m, Class ifc) {
if(!ifc.isInterface())
return false;
Method[]ifcm = ifc.getDeclaredMethods();
for(int i=0; i<ifcm.length; i++)
if(m.getName().equals(ifcm[i].getName()))
return sameSignature(m, ifcm[i]) &&
ifcm[i].getReturnType().isAssignableFrom(m.getReturnType());
return false;
}
You can invoke methodInInterface to test if m is part of ifc interface.
- Dario
|
| |
|
| |
 |
| |
 |
Index ‹ java-programmer |
- Next
- 1
- Security for beans in web applicationHi,
I have POJOs acting as API to the application. How can I implement
authorization? I tried
Subject s = Subject.getSubject(AccessController.getContext());
Set<Principal> ps = s.getPrincipals();
// now i can authorize based on name or whatever
but i get a subject only if the method was called with doAs. But it
seems to me that if this will be my requirement, then just anybody will
call the methods with doAs, passing whatever principal they want.
In short, I'm a newbie in this. I tried to read some material, but i
confess this is very confusing to me.
So how do i get the username to authorize in a secure way?
Thank you,
Ittay
- 2
- 3
- Microsoft Photo EditorCan anyone tell me where I can download a copy of this program for
free? I had it before and sold my old computer, the new one has
Photoshop and I do not like it nearly as well...stuck in time
- 4
- [ports-i386@FreeBSD.org: eclipse-langpack-3.0.1_1 pkg-plist errors
--fdj2RfSjLxBAspz7
Content-Type: text/plain; charset=us-ascii
Content-Disposition: inline
Content-Transfer-Encoding: quoted-printable
Dear port maintainer,
The following port has an incomplete pkg-plist, or other errors in the
files installed by the port. This may mean that the package is
incomplete or non-functional; at the very least, your port does not
leave the filesystem in the same state it was before the port was
installed. Can you please investigate?
Thanks,
Kris "Ports Janitor" Kennaway
----- Forwarded message from User Ports-i386 <email***@***.com> -----
X-Original-To: email***@***.com
Delivered-To: email***@***.com
Date: Wed, 3 Aug 2005 19:30:48 GMT
From: User Ports-i386 <email***@***.com>
To: email***@***.com, email***@***.com
Subject: eclipse-langpack-3.0.1_1 pkg-plist errors on i386 4
X-Bogosity: Ham, tests=3Dbogofilter, spamicity=3D0.000000, version=3D0.94.14
building eclipse-langpack-3.0.1_1 on gohan24.freebsd.org
in directory /x/tmp/4/chroot/1755
maintained by: email***@***.com
port directory: /usr/ports/java/eclipse-langpack
For the full build log, see
http://pointyhat.freebsd.org/errorlogs/i386-errorlogs/a.4.2005072423/ecli=
pse-langpack-3.0.1_1.log
list of extra files and directories in / (not present before this port was =
installed but present after it was deinstalled)
221118 16 drwxr-xr-x 2 root wheel 512 Aug =
3 19:28 usr/local/eclipse/features/org.eclipse.jdt.source_3.0.1
221395 16 drwxr-xr-x 2 root wheel 512 Aug =
3 19:28 usr/local/eclipse/features/org.eclipse.jdt_3.0.1
221854 16 drwxr-xr-x 2 root wheel 512 Aug =
3 19:28 usr/local/eclipse/features/org.eclipse.pde_3.0.1
221866 16 drwxr-xr-x 2 root wheel 512 Aug =
3 19:28 usr/local/eclipse/features/org.eclipse.platform.source_3.0.1
264734 16 drwxr-xr-x 2 root wheel 512 Aug =
3 19:28 usr/local/eclipse/features/org.eclipse.platform_3.0.1
264759 16 drwxr-xr-x 2 root wheel 512 Aug =
3 19:28 usr/local/eclipse/features/org.eclipse.sdk_3.0.1
----- End forwarded message -----
--fdj2RfSjLxBAspz7
Content-Type: application/pgp-signature
Content-Disposition: inline
-----BEGIN PGP SIGNATURE-----
Version: GnuPG v1.4.1 (FreeBSD)
iD8DBQFC8+bGWry0BWjoQKURAr6hAKDplrgfe+PXevyuttOBpZg2+zQS+QCgnSat
J9ldKeYQaqiNCUlEH0qK3go=
=CngA
-----END PGP SIGNATURE-----
--fdj2RfSjLxBAspz7--
- 5
- Sort objects in a vectorHello
I want to sort objects (implemented Comparable) in a vector. My method is to
use convertTo array function in Vector class then sort this array by using
Array.sort function. then I copy all items in this array into the old vector
(by removing all items in this vector and then uses function "add" function
in Vector class). Do you have any idea about this method..
Thanks
S.Hoa
- 6
- Formatting JTextFieldsHi all!
I had this some time ago, but I didn't have the time. What is the best
way to accomplish allowing only certain characters to be entered in a
text field?
I remember having read about something subclassing Document, the text
field model, but it seems a little complicated to me.
I need a textfield where only letters can be entered, possibly a-z and
one field, where only digits are allowed.
Can anyone tell me how to do this, probably providing some short code
snippet?
Thanks for your help!
Karsten
- 7
- [OT]Martin Gregorie wrote:
> email***@***.com wrote:
>>
>> In the mainframe days, I'd have said most people's image of a
>> programmer was influenced by those IBM employees in suits -- nerdy,
>> but conservative. When PCs took off, that image changed some,
>> into the current "nerdy, no social skills, poor hygiene, etc."
>> I can believe that young women found the mainframe-programmer
>> image less off-putting than the mad-hacker-PC-programmer image.
>>
> IIRC the "nerdy...." image predates the PC by getting on for 10 years
> and was probably first defined by Richard Stallman and his fellow
> hackers at college.
1966 at the /latest/ at Brown -- but that's in the University world.
In the business world, in the late 60s, programmers still had offices
(perhaps two to an office), and were indistinguishable from other
management-class workers, apart from, perhaps, a greater tendency to
work in shirtsleeves, with the jacket hung up or draped over a chair.
And some of them were women -- typically 30-40, married, with children.
--
John W. Kennedy
"Only an idiot fights a war on two fronts. Only the heir to the throne
of the kingdom of idiots would fight a war on twelve fronts"
-- J. Michael Straczynski. "Babylon 5", "Ceremonies of Light and Dark"
- 8
- Java soluton for outputting English?Hi, I've generated a program that outputs a series of nodes eg, {A, F, L,
Z). This corresponds to the recommended route along a certain path. i.e.
starting at A go to F then L and arrived at destination Z. I want this to be
generated into English. for eg, I can deleiver to a user a message that
says.........
When at A turn letf for F
Then keep straight for L
fianlly turn left for Z
So there will be a fixed amout of Engkliosh instructions
1- turn left:
2- turn right:
3- go staright:
So basically I need to output a set of directions. In a database I have
stored information about roads and the different nodes on each road, my
problem seems to be deciding how each node and road are related to each
other, in order to instruct for eg' turn left'. To be honest I've racked my
brains trying to come up with a solution but I'm stuck. Can anyone recommend
any ideas?
If you like I can provide more information.
- 9
- Fastest way to pass messages?Our app needs to have a central computer send a message to several other
computers, and then gather a response from each. This has got to happen
hundreds of times per second (not necessarily synchronously). Each
message is just an array of bytes, usually less than 100 bytes on the
way out and less than 8K on the way back.
What's the fastest, most efficient way to do it? RMI? Jini? JMS? REST?
Raw sockets?
I expect that some would say raw sockets, but my guess is that one or
more of the others might be nearly as fast and have other advantages as
well. Any advice is appreciated.
- 10
- Ant: How to parameterize similar targets?I'm faced with a bunch of build.xml files in several directories,
all of them define a certain target (say: T). The definition of
this target in all these build files are structurally nearly the same.
Their implementations differ only in small details, say, a different
value for some filename etc. During one build, all these targets are
executed by recursive calls of Ant.
Maintaining this is a nightmare, because every change of logic has to
be repeated in every build file, so I'm looking for away to have
only one copy of them.
Using an ENTITY declaration in the DOCTYPE and including these repeated
parts with &... does not work, because they are not completely identical.
Using properties as parameters for the differing bits does not work
either, because I can not change a property as soon as it is set once.
Of course I could write a new Ant task in Java, and pass the differing
values as attributes, but this seems to be an overkill for such a
seemingly simple problem.
Any ideas?
Ronald
- 11
- Applet and new window connection problem.Hi All.
During recent development I encountered a following problem:
My app uses 2 windows - in one - there's an applet that displays some
data structure (loaded from xml file with JTree representation). User
can browse through the hierarchy and than can click on the desired
node. When he/she does it - applet takes some doing and produces a xml
data that should be used by servlet invoked in the second window.
Generally I'm using showDocument(url, target) method to achieve that.
Problem is that with this approach I can ony pass short strings - as
in GET request. What happens is that my xml data can be quite big and
I really need to send them to servlet and display in the
applet-adjacent frame. I was thinking of some workarounds to this but
everything seems to be either not working either to complicated and
difficult to maintain.
Should you have any thougths, I would greatly appreciate.
TK.
- 12
- Sorting a row of letters, using a blank space, with some added rulesI will have a line consisting of the letters A-E in a random order and
a blank space at the end. So that gives me positions 1-6. Now I want
them sorted to give me the order "ABCDE ", and the sorting would be to
put a letter into the empty space, and sort them that way. That would
be easy enough to code if it wasn't for some necessary rules.
It will not be possible to swap from any position to any position,
which possible moves there are, has to be hardcoded in, like for
example a small array, but since there are maximum 15 possible moves,
that should not be a problem.
For example I could have this starting line-up "BCEAD ". And you could
only move between positions 1 and 2, 1 and 4, 1 and 6, 2 and 3, 2 and
5, 3 and 4, 3 and 6, 4 and 5, 5 and 6.
So since my goal is to minimize the number of moves, in this case the
algorithm would produce the following moves, which is the shortest
solution.
"BCEAD "
"BC ADE"
"B CADE"
" BCADE"
"ABC DE"
"ABCD E"
"ABCDE "
I hope I've made my point clear enough. What I can't figure out is the
algorithm for this, which I hope some of you can help me with. I don't
expect finished Java code, properly explained pseudo code will do :)
Michael
- 13
- Draw controls over custom paintsHi!
I'm trying to drawing under swing controls; actually i draw over all
japplet canvas with repaint method.
public void update (Graphics g)
{
g.fillRect(0,0,300,300);
}
If i declare a simple JTextField with this code:
JTextField field1;
[...]
panel = new JPanel();
field1 = new JTextField( 10 );
panel.add( field1 );
getContentPane().add( "Center", panel );
The textfield is created under the filled rectangle (so i can't see
it!); there's a way to draw the controls on top of the paint methods??
Thanks in advance!
D.Maiorana.
- 14
- method always visible by other classThen I have a class called MyDBConn.java, inside this class there's a
method called GetResultFromPazienti():
MyDBConn.java:
==================================
package cc;
import java.sql.*;
public class MyDBConn {
private Connection myConnection;
private java.sql.Statement stmt;
// ...
public ResultSet getResultFromPazienti2(String query) {
ResultSet rs=null;
try{
rs=stmt.executeQuery(query);
}
catch(Exception e){
alerts.showErr(e.getMessage());
}
return rs;
}
// ...
==================================
After this, I have a class called Paziente.java, from this class I
would call method: getResultFromPazienti2(), class is something like
this:
File: Paziente.java
==================================
package cc;
import java.sql.*;
public class Paziente extends javax.swing.JFrame {
private MyDBConn mdbc;
private java.sql.Statement stmt;
// ...
// ...
private void formWindowOpened(java.awt.event.WindowEvent evt)
{
ResultSet rs=mdbc.getResultFromPazienti2("select ... from ...
where ...");
try {
rs.next();
// ...
txtNome.setText(rs.getString("NOME"));
// ...
} catch (SQLException ex) {
ex.printStackTrace();
}
}
}
==================================
At first moment seem that are not problems, infact there's no problem
in compile time, but when I execute project and method
formWindowOpened() is started an "Exception in thread "AWT-
EventQueue-0" java.lang.NullPointerException", where are the
problems???
Thank you to all....
- 15
- request.getServerName different values on similar setupsHi
I have a controller servlet (on env1-server1) which redirect to a jsp
on a different server (env1-server2). When i do a
request.getServerName() from the called jsp i get the jsp server name
(ie. env1-server2).
I have a similar setup of these 2 servers for another development
environment - env2-server1 for controller servlet and env2-server2 for
jsp. But here when i do a request.getServerName() from the called jsp
i get the controller servers name (ie. env2-server1)
I would appreciate if someone can tell me how this could happen, since
i think that the value i get from request.getServerName() in the 2nd
setup should be env2-server2.
Thanks
|
|
|