java - 为什么我不能从我的主要使用静态方法?
问题描述
我正在做一个日记程序。
- 在日记课中,我创建了名为“addStudent”的方法,但我不知道为什么它在我的主目录中不可见?
编辑我添加了代码,抱歉只有一个块而不是 3 个,但 lombok 导入导致格式问题
EDIT2我删除了剩余的问题
public class Main {
public static void main(String[] args) {
}
}
import lombok.AllArgsConstructor;
import lombok.Data;
import java.util.ArrayList;
import java.util.List;
@AllArgsConstructor
@Data
public class Diary {
List<Student> listOfStudents = new ArrayList<>();
public static void addStudent(Student... students){
Student student = new Student(Student.askAboutGrades(), Student.askAboutIndexNumber(), Student.askAboutName(), Student.askAboutSurname());
}
}
import java.util.ArrayList;
import java.util.Arrays;
import java.util.List;
import java.util.Scanner;
@AllArgsConstructor
@Data
public class Student {
List<Double> grades = new ArrayList<>();
String indexNumber;
String name;
String surname;
public static String askAboutName() {
System.out.println("Type the name");
Scanner scanner = new Scanner(System.in);
String name = scanner.nextLine();
while
(!(name.matches("[a-zA-Z]+"))) {
System.out.println("incorrect name, try again");
name = scanner.nextLine();
}
System.out.println("Name seems good");
return name;
}
public static String askAboutSurname() {
System.out.println("Type the surname");
Scanner scanner = new Scanner(System.in);
String surname = scanner.nextLine();
while (!(surname.matches("[a-zA-Z]+"))) {
System.out.println("incorrect surname, try again");
surname = scanner.nextLine();
}
System.out.println("surname seems good");
return surname;
}
public static String askAboutIndexNumber() {
System.out.println("Type the index number (6 digits!)");
Scanner scanner = new Scanner(System.in);
String indexNumber = scanner.nextLine();
while (!indexNumber.matches("\\d{6}")) {
System.out.println("incorrect index number, try again");
indexNumber = scanner.nextLine();
}
System.out.println("index seems good");
return indexNumber;
}
public static List<Double> askAboutGrades() {
System.out.println("Type the grades,separated by comma (\",\")");//todo check if works and set limiter from 2 to 5.5
Scanner scanner = new Scanner(System.in);
String input = scanner.nextLine();
String[] arrayOfGrades = input.split(",");
List<String> listOfGrades = new ArrayList<>(Arrays.asList(arrayOfGrades));
List<Double> listOfGradesDouble = new ArrayList<>();
String temp;
for (int i = 0; i < listOfGrades.size(); i++) {
temp = listOfGrades.get(i);
listOfGradesDouble.add(Double.parseDouble(temp));
}
return listOfGradesDouble;
}
}
Github: https ://github.com/Karol011/SDA/tree/master/zadania/src/main/java/Kolekcje/ListyKolekcje/Diary
解决方案
哇。我会试试: 1. 你怎么称呼它?应该是这样的
Diary.addStudent();
嗯。您打算如何从静态方法访问非静态列表?为什么它是静态的?
听起来怪怪的。
弄清楚什么是静态的以及何时使用它。在大多数情况下,您不需要它。另外,我会删除所有 lombok 并尝试使用纯 java 来解决问题。恕我直言。
波沃兹尼亚)
推荐阅读
- python - 如何在 Pycharm 中加载依赖项和子文件夹?
- python - Scrapy Python Web Scraping - 创建 XPath
- javascript - 循环 Google 分析 api 调用后的 Javascript,如何显示多个结果?
- css - CSS文本背景悬停效果在鼠标悬停时表现异常
- apache - 带有 apache 过滤器的 Fail2ban 40*-命中
- android - 如何创建圆形波纹?
- java - 计算流中的元素并返回 Insted of long
- php - 链接到新页面并打开特定模式
- linux - 如何使用 Ubuntu“重命名”工具替换目录和文件名中的字符串?
- android - 如果有很多,如何专注于下一个编辑文本