2013-03-09 75 views
-1

我有这样的场景,这是一个很好的实现吗?声明接口内的数组对象

public interface Vehicle { 
// is it possible to declare array in interface? 

//so it is possible and no compilation errors 

Vehicle[] vehicles1 = new Vehicle[10]; 


} 
+1

定义存储类型实施细则之内,你应该* **不要在接口中这样做,它只涉及声明行为(不定义它)。 – Perception 2013-03-09 13:08:47

回答

0

在技术上可以声明这样的字段。即使你没有明确说明它,它将是public,staticfinal(它基本上使它成为常量)。

无论这是一种好的做法还是不是真的取决于你将使用它。尽管如此,在大多数情况下,这是令人沮丧的。

0

你有可能,但属性是公开的,这不是一个好的风格。该属性应该是私人的,并通过gettersetter方法访问。

0

不,您只能在接口中声明public方法和static final字段(常量)。

这样的事情是可能的,但不是你想要的东西:

public interface Vehicle { 
    public static final Vehicle[] vehicles1 = new Vehicle[10]; 
} 

我建议使用常规的getset模式:

public interface Vehicle { 
    void setVehicles1(Vehicle[] vehicles); 
    Vehicle[] getVehicles1(); 
} 
+0

你可以声明它像'Vehicle [] vehicles1 = new Vehicle [10];'''public'' static'和'final'修饰符将被隐式添加 – 2013-03-09 13:06:00

+0

对此不确定(因为op建议他得到编译错误)。 – 2013-03-09 13:07:22