2013-03-11 75 views
0

我有一组记录,其变量要分配给UI中的一组标签。 的问题是,我必须写重复的代码要显示每个记录,如:调用不同名称的Java方法

label.setName1("") 
label.setDate1("") 

label.setName2("") 
label.setDate2("") 

有没有办法来递增的方法,它是集合中记录的位置数通过一个循环或一些东西,所以我不必在我的班级有重复的代码?

+4

为什么你需要多种方法? – 2013-03-11 11:55:26

+0

对于这样的场景我们使用一个列表。但是你的问题看起来不太清楚,因为这个问题可以通过其他方式解决。如果我们能够知道你想要做什么 – 2013-03-11 11:55:38

+1

你可以使用反射,但是改变你的方法来传递参数的数字会更好。 'label.setName(1,“”)' – RoToRa 2013-03-11 11:56:32

回答

0

你可以使用反射来做到这一点。你可以看看herehere了解更多详情。

+0

感谢您的帮助大家,非常感谢。 – ojap 2013-03-11 14:06:00

+0

@ojap不要仅仅因为您认为正确而使用反射。在大多数情况下,反射是一个错误的工具,因为它很慢,而不是执行任务的“Java方式”。如果你告诉你使用你正在做的事情,我们可以帮助你找到更好更简单的方法。 – RoToRa 2013-03-12 16:02:06

+0

@RoToRa我可以理解,它不是最好的工具,但是,这是一种不寻常的情况,并且面临着时间压力。如果我稍后有时间,我会研究重构。谢谢! – ojap 2013-03-12 21:16:51

0

是的,使用java反射。你可以得到一些名字的方法,然后让它们为你工作。

MyClass.getMethods() 

将返回您班级的所有方法。还有继承的方法。如果你只想在你的类中声明你可以使用getDeclaredMethods()替代方法(读this

它们都将返回对象的数组与Method类型。之后,你可以为你的对象调用它们。

但我认为最好是改变你的类结构,并保持名称,标签和其他东西的数组,而不是每个属性。

相关问题