我应该在什么时候创建内部类或内部静态类



我知道static关键字,但简而言之。我的尝试是创建内部静态类,因为它与外部类相关。实际问题是我不知道如何访问它。我使用静态类的原因是,我只需要每个应用程序一个它的实例?

如果您发现任何错误的划分,请更正,并给出类/静态类的实际用法。

public class DbPredecessorTest {
List<Book> db;
Book book;
Integer numberOfBooks;
static BufferedReader reader;
static {
try {
reader = new BufferedReader(new FileReader(Main.fileLoc));
} catch (FileNotFoundException e) {
throw new RuntimeException(e);
}
}
static class Helper {
DbPredecessor dbPredecessor= new DbPredecessor();
Long getLines() {
return reader.lines().count();
}
}

我的无方向尝试:

class SomeTest {
@Test
void ableToSave() throws IOException {
db.add(book);
boolean save = Helper.dbPredecessor.save(db);
assertEquals(true, save);
}
@Test
void save_should_increaseLine() throws IOException {
db.add(book);
//    numberOfBooks= (int) Helper.get
boolean save = dbPredecessor.save(db);
assertEquals(numberOfBooks+1, reader.lines().count());
}
}

这不是使用static内部类的原因。静态内部类在功能上是一个普通的Java类,拥有它的唯一真正原因是表明它以某种方式与外部类相关,或者使其成为private

你可以在这里使用一个普通的静态方法:

public class DbPredecessorTest {
static long getLines() {
return reader.lines().count();
}
}

然后像这样使用:

long numberOfBooks = DbPredecessorTest.getLines();

最新更新