我在Question类中有全局变量,并在事件处理程序中递增这些值。我有另一个类User,它包含一个静态方法Details()
。我想将这两个变量值(在增量之后)从事件处理程序传递给User类的Details()
。:
public class Question {
public int phCounter = 0;
public int chemCounter = 0;
private void CategoryCbActionPerformed(java.awt.event.ActionEvent evt) {
phCounter++;
chemCounter++;
}
}
...
public class User {
static void Details() {
public counter ;
}
}
我的问题是有什么办法,除了将值作为参数发送到Details()
,我可以在Details()
方法中注入这些递增的值。
答案 0 :(得分:0)
首先:Java中的方法名称是camelCase。不是UpperCase;)
如果要访问另一个类中的类的字段,有几种方法可以实现。最简单的是静态字段:
public class MyClass {
public static String accessible;
}
public class AnotherClass {
public void someMethod() {
// You can set the value ...
MyClass.accessible = "New value";
}
public void anotherMethod() {
// ... and get the value.
System.out.println(MyClass.accessible);
}
}
但请记住:除非您更改静态字段的值,否则静态字段的值将始终相同,即使您创建使用静态字段的类的新实例也是如此。如果可能,应该避免使用静态字段。在大多数情况下,您可以采用OOP方式来获得相同的结果。
〜变形
答案 1 :(得分:0)
我可以在Details()方法中注入这些递增的值。
这句话是什么意思?
下面的代码无法编译!
public class User{
static void Details()
{
public counter;
}
}
如果您想使用反射将args发送到方法,为什么不调用User.Details(int a,int b)