Java:方法中的访问类
我希望有一个方法声明两个字符串并为它们赋值。然后使用另一种方法读取这些值 我有这样的结构:Java:方法中的访问类,java,class,Java,Class,我希望有一个方法声明两个字符串并为它们赋值。然后使用另一种方法读取这些值 我有这样的结构: public class ABC extends CDE implements EFG { public void firstMethod(valueOne, valueTwo) { class TestClass { public String testValue = valueOne; public String anotherV
public class ABC extends CDE implements EFG {
public void firstMethod(valueOne, valueTwo) {
class TestClass {
public String testValue = valueOne;
public String anotherValue = valueTwo;
}
}
public void readMethod() {
// HERE I WANT TO READ testValue AND ASSIGN IT A NEW VALUE
}
}
我该怎么做
还有更好的方法吗?你确定你需要上课吗 可能一个简单的字段声明就足够了:
public class ABC extends CDE implements EFG {
public String testValue;
public String anotherValue;
public void firstMethod(String valueOne, String valueTwo) {
// do whatever you wish with testValue and anotherValue
}
public void readMethod() {
// here you have access to both variables
}
}
也许这符合你的标准? 由于内部类的范围,您当前所要求的是不可能的 您还可以在构造函数中初始化这个私有类实例
public class Sample {
class TestClass {
public String testValue;
public String anotherValue;
}
private TestClass localTest = new TestClass();
public void firstMethod(valueOne, valueTwo) {
localTest.testValue = valueOne;
localTest.anotherValue = valueTwo;
}
public void readMethod() {
localTest.testValue = "test1";
localTest.anotherValue = "anotherValue";
System.out.println(localTest.testValue);
}
}
使本地类成为全局类,并通过实例设置/读取值:
public class ABC extends CDE implements EFG {
class TestClass {
public String testValue = valueOne;
public String anotherValue = valueTwo;
}
private testClassInstance = new TestClass()
public void firstMethod(valueOne, valueTwo) {
testClassInstance.testValue = valueOne
testClassInstance.anotherValue = valueTwo
}
public void readMethod() {
System.out.println(testClassInstance.valueOne)
System.out.println(testClassInstance.valueTwo)
}
}
您只需创建一个包含
testValue
和anotherValue
的类,并在组件类之外声明该类,例如:
class ExampleBean {
private String testValue;
private String anotherValue;
//getters and setters
}
完成后,您可以将该类的引用保存到组件类中并访问该值,例如:
public class ABC extends CDE implements EFG {
ExampleBean exampleBean = new ExampleBEan();
public void firstMethod(valueOne, valueTwo) {
exampleBean.setValueOne(valueOne);
exampleBean.setAnotherValue(valueTwo);
}
public void readMethod() {
String value = exampleBean.getValueOne();
}
}
您正在用方法声明一个类,这是不正确的 您需要理解类和方法的真正含义(Google Java OOP): 1-您应该创建一个类并声明所需的变量 2-为默认值生成构造函数 3-使设置器设置(分配)这些值
4-让getter读取这些值为什么不将
testValue
和另一个值
声明为ABC
类的属性,而不是声明一个本地类?这有什么意义?您的代码没有编译valueOne
和valueTwo
缺少其类型。--为什么要在方法中声明类?--要将信息从一个方法传递到另一个方法,您应该使用参数。您所做的是声明一个类,而从不创建它的任何实例。因此,这些值从未设置过,并且无论如何都无法读取。内部类应该代表什么?@ernest_k在其他地方我将调用firstMethod来声明这两个字符串,然后调用readMethod来读取这两个字符串并更改它们的值。为什么?为什么不直接使用字段?更新了答案,在发布后立即意识到。初始化?你试过了吗?您将得到一个NullPointerException
。