2011-06-23 48 views
1

这是我的问题。我想要一个具有私有构造函数的类,它可以使用多种静态方法创建,就像Box.createHorizontalBox()一样。当这个类使用泛型时,它变得复杂。具有私人构造函数的通用对象

请告诉我如何正确地做到这一点:

private WorkFlow(int _arrowSize) { 
    this.arrowSize = _arrowSize; 
    this.elements = new ArrayList<T>(); 
} 

public static WorkFlow<T> createHorizontalWorkFlow<T>(int _arrowSize) { 
    WorkFlow<T> workFlow = new WorkFlow<T>(_arrowSize); 
    workFlow.vertical = false; 
    return workFlow; 
} 

这不是工作:月食强调从createHorizontalWorkFlow<T>(int _arrowSize)int和给我的错误Syntax error on token(s), misplaced construct(s)

+0

为什么不从静态方法返回任何东西? – BoltClock

+0

@BoltClock哎呀,编辑!我忘了复制一行... – SteeveDroz

回答

5

试试这个:

public static <T> WorkFlow<T> createHorizontalWorkFlow(int _arrowSize) { 
    WorkFlow<T> workFlow = new WorkFlow<T>(_arrowSize); 
    workFlow.vertical = false; 
    return workFlow; 
} 

你非常接近。刚刚在<T>错误的地方 - 你必须在返回类型之前声明通用类型

+0

哇,我几乎在那里;-)非常感谢。就像'这个'一样,这是一个tpyo。我纠正了它。 – SteeveDroz

+0

静态“这个”警告删除:)。另外,如果你觉得它是正确的,请“接受”我的答案 - 这样问题就会显示为“已回答”,而且ppl不会继续添加更多尝试等等 - 哦,你已经完成了。 thx :) – Bohemian

+0

我即将到来,但你回答得太快,我不得不等待15分钟;-) – SteeveDroz

相关问题