java - 将数据保存在向量中并在其他功能中重用
问题描述
我最近了解到我在编写代码时不应该使用全局变量,但是在这种情况下,我需要将一些数据保存在一个向量中,这样如果用户点击一个按钮,就会显示一个列表。该列表应包含存储在向量中的信息。所以我在考虑在click函数中创建向量,但是当函数结束时,向量将被删除。我也想过在main函数中创建vector,但是click函数识别不出来。那么,是否可以将信息保存在向量中,并在同一类中的其他函数中重用它,而无需对该变量进行全球化?
类似的东西:
private void btn_saveClientActionPerformed(java.awt.event.ActionEvent evt) {
Sale sale;
String clientName = txtFied_Name.getText().toString();
String product = txtField_product.getText().toString();
sale = new Sale(clientName, product);
vector.add(sale); // this is the variable with problems!
}
private void btn_showListActionPerformed(java.awt.event.ActionEvent evt) {
List list = new List();
list.addSales(vector);
list.setVisible(true);
}
解决方案
我也想过在main函数中创建vector,但是click函数识别不出来。
在应用程序中,静态 voidmain()
方法必须被视为一个入口点,它应该依赖类的实例来执行应用程序的逻辑和要求。因此,您应该将向量声明为您的类之一的实例字段(请注意,您应该赞成确实过时的)List
。
因此,请让我在您的示例 中替换为。Vector
vector
list
假设您的入口点类被称为MyApp
.
MyApp
可以声明为:
public class MyApp{
private List<Sale> list = new ArrayList<>();
public static void main(String[] args){
new MyApp();
}
public MyApp(){
// init an instance of the class
}
// ....
private void btn_saveClientActionPerformed(java.awt.event.ActionEvent evt) {
Sale sale;
String clientName = txtFied_Name.getText().toString();
String product = txtField_product.getText().toString();
sale = new Sale(clientName, product);
// list is now accessible as it is an instance field and a
// instance method of the same class can refer to it
list.add(sale);
}
}
推荐阅读
- javascript - AJAX jQuery 实时评论
- javascript - 单击子链接jquery时如何防止所有父母切换?
- javascript - highcharts typeerror 这不是一个函数
- spring-boot - 用于测试的 Spring Security Oauth2 H2 - 未找到表“OAUTH_ACCESS_TOKEN”
- java - Leetcode 351 Android 解锁模式
- javascript - 循环中的同步 AJAX 请求得到相同的响应
- excel - .copyfromrecordset 没有响应
- php - 我想知道我的产品表中的产品总数,但它显示错误,正确的语法是什么
- html - 雷鸟 - 从苹果邮件到雷鸟的电子邮件签名是一行
- r - 关于过热包中的ggsave