Java问题与对象

时间:2012-01-04 17:48:32

标签: java

我有一个名为

的班级
public class UserSettings {
    public static String sessionId;
    public static  int vrefresh;
    public static  int mrefresh;
}

然后在另一个班级我有这个方法

public static void parseBusinessObject(String input, Object output) 

此方法写入输出对象。

但是在这种情况下仍然存在静态变量,所以我可以在不创建对象的情况下传递类?

2 个答案:

答案 0 :(得分:2)

您根本不需要传递类,您可以将目录写入静态属性:

UserSettings.mrefresh = 42;

是否是一个不同的问题。如果您将UserSettings作为Object参数传递(从帖子中不清楚),则可以通过实例引用访问静态成员:

output.mrefresh = 42;

这被认为是......次优的:Java约定只通过类访问静态属性,而不是实例,尽管这样做的语法合法性。但是您的方法需要Object,因此您需要根据instanceOf结果使用反射或强制转换 - 我对方法本身持怀疑态度。

答案 1 :(得分:2)

您可以使UserSettings上的变量不是静态的(即删除静态修饰符),然后创建UserSettings的新实例,然后将其传递给parseBusinessObject

这就是你打算做的事。