gpt4 book ai didi

java - 使用类而不创建它的新实例

转载 作者:行者123 更新时间:2023-12-02 11:38:28 26 4
gpt4 key购买 nike

对于 Java 来说是新手,对于 Android 开发来说也是新手。

我已遵循以下教程 - Android tutorial (Basic Hello World App)我现在稍微改变它作为概念证明。

基本上我想使用我创建的类,但我遇到了一些困难。该类如下所示。

public class Employee {

private HashMap<String, String> employees = new HashMap<>();

public void setEmployees(String name, String jobTitle) {
employees.put(name, jobTitle);
System.out.println(employees);
}

public String getEmployees(String name){
return employees.get(name);
}

}

我从 MainActivity.java 填充 HashMap。使用上面的 set 方法,这可以按预期工作。我已经测试过了,可以看到 HashMap 具有所需的条目数。

我的问题是取回数据时。我如何使用该类。我有一个文件名 DisplayMessageActivity.java 以及其中的以下代码。

import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;
import android.widget.TextView;


public class DisplayMessageActivity extends AppCompatActivity {

@Override
protected void onCreate(Bundle savedInstanceState) {

super.onCreate(savedInstanceState);
setContentView(R.layout.activity_display_message);

// Get the Intent that started this activity and extract the string
Intent intent = getIntent();
String message = intent.getStringExtra(MainActivity.EXTRA_MESSAGE);

// Capture the layout's TextView and set the string as its text
TextView employee_name = findViewById(R.id.employee_Name);
employee_name.setText(message);
TextView employee_title = findViewById(R.id.employee_Title);
employee_title.setText(employee.getEmployees(message));
}
}

最后一行是我收到错误的地方。这是因为它不知道employee 是什么。我想我需要添加:

Employee employee = new Employee;

如果我在 onCreate 方法中添加它,它会创建一个新实例,因此它具有新值。我还在 onCreate 上方添加了它,结果相同。

我错过了什么?

最佳答案

要保留数据,您需要将变量和方法设为静态

public class Employee {

private static HashMap<String, String> employees = new HashMap<>();

public static void setEmployees(String name, String jobTitle) {
employees.put(name, jobTitle);
System.out.println(employees);
}

public static String getEmployees(String name){
return employees.get(name);
}

}

这意味着一次只能存在一个版本。您可以直接调用类和方法。

employee_title.setText(Employee.getEmployees(message))

关于java - 使用类而不创建它的新实例,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48749065/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com