java中的新功能。我试图将方法添加到我当前正在运行的程序中,以打印出来自args数组的大量字符。尝试安装新方法,我在调用args方面遇到了麻烦。这是我目前的代码,红色轮廓是。
static void amountOfCharsInSentence() {
int sum=0;
for (String s: args) { //args on this line is marked red
sum+=s.length();
}
}
public static void main(String[] args) {
amountOfCharsInSentence();
}
任何正确方向的提示或提示都将受到赞赏。
答案 0 :(得分:0)
你没有通过args。
static void amountOfCharsInSentence(String[] args) {
int sum=0;
for (String s: args) { //now it will not give red line.
// red line is indicated because there is no args inside this method
sum+=s.length();
}
}
public static void main(String[] args) {
amountOfCharsInSentence(args);
}
希望这能解决您的问题
答案 1 :(得分:0)
args
是main
的参数,这意味着您只能在main
中使用该参数(类似于局部变量)。
如果您想在其他地方使用它,您有两种选择。最合适的是将其作为参数传递给您的其他函数:
static void amountOfCharsInSentence(String[] args) {
// Declare argument here -----------^^^^^^^^^^^^^
int sum=0;
for (String s: args) { // `args` here is the argument to *this* function
sum+=s.length();
}
}
public static void main(String[] args) {
amountOfCharsInSentence(args);
// Pass it here --------^^^^
}
您的另一个选择是创建类的静态成员,该类中的所有方法都可以访问该成员,并将args
分配给该静态成员:
class YourClass {
static String[] commandLineArgs;
static void amountOfCharsInSentence() {
int sum=0;
for (String s: commandLineArgs) { // Use the static member here
sum+=s.length();
}
}
public static void main(String[] args) {
commandLineArgs = args; // Assign the static member here
amountOfCharsInSentence();
}
}
......但在这种情况下,这可能不合适。