2016-04-22 9 views
-1

Ich habe eine Schnittstelle Form genannt und ich habe diese Methode muß ichRückkehr eine Schnittstelle Java

public static Shape createShape(String shapeString, int panelWidth, int panelHeight) { 
     Shapes shape = Shapes.valueOf(shapeString); 
     Shape shapey = Shape(shape); 
     Random random = new Random(); 
     int a = random.nextInt(panelWidth); 
     int b = random.nextInt((panelHeight*panelWidth)/(4*a)); 
    } 

ich mir eine Form zurückkehren muß wissen, implementieren, aber ich weiß nicht, wie ich soll tue das

+0

Um ein Objekt zurückzugeben, geben Sie einfach ein: return shapey; –

Antwort

0

Was meinst du "ich muss eine Form zurückgeben"? Bitte sei klarer.

Sie kann nicht eine Schnittstelle instanziieren, müssen Sie eine Klasse instanziiert, die die Schnittstelle implementiert, zum Beispiel:

class Square implements Shape { ... } 

public static Shape createShape(String shapeString, int panelWidth, int panelHeight) { 
    ... 
    return new Square(); 
} 
+0

Sie können es mit einer anonymen Klasse tun, anstatt was Sie getan haben. http://stackoverflow.com/questions/9157784/java-interface-with-new-keyword-how-is-that-possible – Gendarme

+0

Ich bin ziemlich sicher, dass ist nicht, was das OP zu tun sucht. –

0

Wenn Sie nicht über eine Methode Shape genannt haben dann diese Anweisung ungültig ist

Shape shapey = Shape(shape); 

und wird nicht kompilieren ... auf der anderen Seite ... das Zurückgeben einer Schnittstelle ist nicht mehr als das Zurückgeben einer Klasse, in dem Sinne, dass Sie die Return-Anweisung und die Schnittstelle hinzufügen müssen, oder einige Objekte das implementiert die Schnittstelle ...

public static Shape createShape(String shapeString, int panelWidth, int panelHeight) { 
     Shapes shape = Shapes.valueOf(shapeString); 
     Shape shapey = Shape(shape); 
     Random random = new Random(); 
     int a = random.nextInt(panelWidth); 
     int b = random.nextInt((panelHeight*panelWidth)/(4*a)); 
     return shapey;//this will do the trick 
    }