ich habe eine nicht statische methode und möchte diese in einer anderen klasse instantiieren. die klasse ist so deklariert:
Code:
public final SimilarityInfo getSimilarity(String w1, String w2) throws JWNLException
{
//Get the (possibly) multiple synsets associated with each word
Set<Synset> ss1 = getSynsets(w1);
Set<Synset> ss2 = getSynsets(w2);
//assume the words are not at all similar
SimilarityInfo sim = null;
for (Synset s1 : ss1)
{
for (Synset s2 : ss2)
{ usw
sie nimmt zwei wörter als argumente und berechnet die semantische distanz zwischen ihnen. SimilarityInfo ist so deklariert und beinhaltet die für die messung der distanz relevanten informationen:
Code:
public class SimilarityInfo
{
private Synset s1, s2;
private IndexWord iw1, iw2;
private double sim = 0;
private String d1, d2;
/**
* @param w1 the first word (or it's encoded form)
* @param s1 the first synset
* @param w2 the second word (or it's encoded form)
* @param s2 the second synset
* @param sim the similarity between the two synsets
* @throws JWNLException
*/
protected SimilarityInfo(String w1, Synset s1, String w2, Synset s2, double sim) throws JWNLException
{
//store the synsets and the similarity between them
this.s1 = s1;
this.s2 = s2;
this.sim = sim;
usw
ich würde gerne die methode getSimilarity aus einer anderen klasse ausführen und aus der rückgabe dann den wert sim holen und ausgeben. ich weiss zwar ungefähr, wie das instantiieren der methode geht, bekomme es aber nicht hin. kann mir jemand sagen was ich machen muss, um das ding in einer neuen klasse zu instantiieren und auszuführen?
class Test{
private int bla = 12;
public int getBla(){
return bla;
}
int getInt(){
return 1;
}
}
class Main(){
...main(String[] args){
Test t = new Test();
int xy = t.getInt();
int b = t.getBla();
}
}
oder so machen???? das sieht irgendwie sehr komisch aus. könnte das jemand etwas konkreter mit den oben angegebenen namen oder mit einem gleichen beispiel machen, in dem die methode auch zwei argumente nimmt?
Ich weiß nicht, ob es für Dich interessant ist oder auch overkill, aber ich habe mich kürzlich auch mit Ähnlichkeiten beschäftigt und dabei eine Bibliothek gefunden: http://www.dcs.shef.ac.uk/~sam/simmetrics.html
hm, also wenn ich das so versuche, bekomme ich in der zeile in der das new steht von eclipse den fehler "cannot instanciate the type SimilarityMeasure". kann man eine methode überhaupt instantiieren?
Natürlich nicht, du kannst Instanzen von Klassen erzeugen,
auch Objekte genannt.
Der Müde Joe hat dir schon die Antwort gegeben, sein letzter Post,
Zeile 6.
Merkst du das nach dem Objektnamen (measure) noch ein Punkt kommt,
gefolgt vom Namen der Methode?
hm, also wenn ich das so versuche, bekomme ich in der zeile in der das new steht von eclipse den fehler "cannot instanciate the type SimilarityMeasure". kann man eine methode überhaupt instantiieren?
Das Problem ist, das dir völlig die Grundlagen fehlen, und du dich in ein Framework( oder so?)
wagst, ohne genau zu wissen was du da tust.
das diese Klassen nicht von dir sind nehme ich mal an (nicht böse gedacht)
wie sie benutzt werden kann ich kaum erahnen, da du mit Fachbegriffen um
dich wirfst in einem Kontext, der....naja bin kein Hellseher
zu deinem Fehler:
keine Ahnug was diese Klasse (Sim..Measure) ist oder macht. ich habe lediglich deinen
Code kopiert und in eine für mich logische Struktur gebracht. Es ist also nicht
möglich auch nur ein wenig zu helfen. Tut mir leid, ist aber so.