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