有没有一种方法可以创建一个标签,这样当编译器运行时,它会用java中的语句替换该标签

有没有一种方法可以创建一个标签,这样当编译器运行时,它会用java中的语句替换该标签,java,Java,很抱歉措辞不当。我有一个字符串数组列表,每个索引对应一个类别。例如,list.get(i)[1]将始终保留一个名称。我想要的是在代码中输入NAME,当我编译时,它会自动用该语句替换NAME。我很确定我以前见过这个,但是我在搜索它的时候找不到任何东西。你不能在Java中这样做。您所说的是C宏,它在Java中是不存在的。但是,您可以创建一个做类似事情的包装器对象。下面是一个例子: public class MyData { private List<String[]> interna

很抱歉措辞不当。我有一个字符串数组列表,每个索引对应一个类别。例如,list.get(i)[1]将始终保留一个名称。我想要的是在代码中输入NAME,当我编译时,它会自动用该语句替换NAME。我很确定我以前见过这个,但是我在搜索它的时候找不到任何东西。

你不能在Java中这样做。您所说的是C宏,它在Java中是不存在的。但是,您可以创建一个做类似事情的包装器对象。下面是一个例子:

public class MyData {
  private List<String[]> internalData;

  public MyData(List<String[] internalData) {
    this.internalData = internalData;
  }

  public getName(int index) {
    return internalData.get(index)[1];
  }
  public getAddress(int index) {  // For example
    return internalData.get(index)[2];
  }

  // Here, expose any methods of List that you need, such as size()
  // So you can use a for loop correctly
  public int size() {
    return internalData.size();
  }
}
公共类MyData{
私有列表数据;

公共MyData(在C语言中,你可以使用#define preprocessor语句来实现这一点。虽然我不知道Java,但我猜这是不可能的。完全不清楚你在寻找什么。发布代码,这会有所帮助。Java没有任何宏扩展功能,但它有面向对象的功能。创建一个类来包装定义不正确的数据结构给它一个
getName()
函数。是的,#define是我想的。我想Java没有类似的功能。谢谢你告诉我如果你有命名字段,我会使用自定义类而不是数组。嗯,这是编写它的自然方式。