2015-04-21 69 views
-1

返回接口我有这样的代码:爪哇 - 没有实施任何类

import java.util.List; 
class A{ 
... 
public List<INet4Address> func() 
{ 
// normally I would do smth like this: 
// List<INet4Address> list = new new ArrayList<Inet4Address>(); 
// but I can't because its prohibited by my teacher 
} 
... 
}; 

我的意思是,他禁止我们使用任何公共类的(换句话说,我不能比列表导入多个类/包的任何。建议我怎么能返回接口的实现?

+5

也许你可以问你的老师他期望什么。 –

+0

嗯,我不知道你的老师在等什么,但是如果你不能导入任何课程,你必须实现自己的界面列表 – Vyncent

+1

附注 - 尽管在类声明结尾的分号是*许可*,既不需要也不推荐。 –

回答

4

如果您不能创建一个现有的类的实例,你唯一的选择是创建实现List<INet4Address>接口的匿名类的一个实例。

public List<INet4Address> func() 
{ 
    return new List<Inet4Address>() { 

     public int size() 
     { 
     // TODO Auto-generated method stub 
     return 0; 
     } 

     public boolean isEmpty() 
     { 
     // TODO Auto-generated method stub 
     return false; 
     } 

     ... add implementations of all the methods of the List interface 
    }; 
} 
+2

工作。当然,没有理智的老师会希望他们的学生真的这样做。 –

+0

@DavidWallace除非他们刚刚了解到匿名类。 – Eran

+0

它不一定是一个匿名类。它可能是一个命名的嵌套类... –