java - 如何在不创建新对象的情况下从另一个类访问非静态变量
问题描述
我希望能够在不创建新对象的情况下从另一个类访问非静态变量和非静态方法。
在我们项目的现有代码中,由于创建新对象,它的创建类实例化问题。
请参阅下面的创建两个类及其变量都是非静态的。
注意:我们保持变量和方法非静态,以支持使用 Test NG 套件执行并行测试。意味着相同的代码必须同时支持多个执行。因此不能将声明更改为静态,因为静态变量不支持并行执行。
1 类公共类 DataBaseQueries {
// non static Class variable
public int g_intDBNumericValue;
// non-static method
public Integer ecDBGetNumericValue(String Query){
Code logic to get numeric value from Data base.......
// returing extracted numeric value
return g_intDBNumericValue;
}
}
//Class 2 //这里继承的类 Configuration 是另一个 Class 说 Class3 是必需的,我们不必扩展 Class 1 即 DataBaseQueries
公共类 CommonActions 扩展配置{
// non static Class variable
public int g_intSavedValueValue;
// 验证保存值的非静态方法 public Integer ecSavedvalue{ g_intSavedValueValue=ecDBGetNumericValue("Select value from tableA where ID =100") }
}
公共类配置{
// non static Class variables
public int g_int1....;
// 非静态方法
public Integer ecSample{ g_intSavedValueValue=ecDBGetNumericValue("Select value from tableA where ID =100") }
解决方案
尝试扩展类,这里是示例
public class SuperClass {
public int getNb() {
//specify what must happen
return 1;
}
public int getNb2() {
//specify what must happen
return 2;
}
}
public class SubClass extends SuperClass {
//you can override the implementation
@Override
public int getNb2() {
return 3;
}
}
Subclass s = new SubClass();
s.getNb(); //returns 1
s.getNb2(); //returns 3
SuperClass sup = new SuperClass();
sup.getNb(); //returns 1
sup.getNb2(); //returns 2
推荐阅读
- regex - Windows 计划任务进程名称的正则表达式
- ios - 标题选择 UITableview 中的多个部分
- python - 我无法将我在 Seaborn 中的线图的 xticks 设置为对应小时的值
- postgresql - 如何索引 32 个字符的文本 ID
- angular - 如何在Angular材料中添加多个表,每个表都具有过滤器、排序、分页?
- python - 在 for 循环之后将 CSV 上传到 S3
- regex - 如何使用 Perl 在正则表达式中正确匹配 TAB?
- python - Python - ImportError:尝试在没有已知父包的情况下进行相对导入
- matlab - 如何使用 matlab 或 gmail 自动发送邮件?
- java - 如何使用 GenericStoredProcedure 在 Spring Boot 中将 String 设置为输入参数?