java - 在另一个类中调用 get 方法而不在 Java 中创建对象
问题描述
嗨,我是 Java 编程的初学者。正如标题所说,我试图在另一个类中调用 get 方法而不创建对象。get 方法不能是静态的,因为我在给定类的字段中访问私有。我知道如果方法是静态的,我可以在不创建对象的情况下访问常规方法,但是我不能使用简单的 get 方法来做到这一点。我知道这是不可能的,但是有替代方案或其他方法来解决这个问题吗?我有三个班。一个超类,另外两个扩展了这个类。我在其中一个子类中有一个列表,我正在尝试在另一个子类中访问该列表的 get 方法(不确定这是否相关)。该列表在给定类的构造函数中实例化。除了 get 方法之外,我真的没有任何代码,所以代码中没有太多可显示的内容。谢谢。
编辑:
public class A{}
public class B{
private List<A> list;
private B() {
list = new ArrayList<>();
}
public int getList() {
return list;
}
}
public class C{
I want to access getList method here.
}
解决方案
在不创建对象的情况下调用函数是没有意义的。方法旨在处理包装在对象内的数据。
如果你有两个子类并且你试图在那个列表中存储一些东西,那么你只需要在你的超类中pull-up
列出你的函数或对象。list
在超类构造函数内部,您可以初始化列表。每次创建新对象(在本例中为子类对象)时,它都会有自己的列表。
但是,您尝试做的事情是完全错误的,根本不可能。
public class A extends B{}
public abstract class B{
private List<B> list;
public B() {
list = new ArrayList<>();
}
protected ArrayList<B> getList() {
return list;
}
}
public class C extends B{
//You can now call list method.
}
// 我没有编译它,但它应该可以工作,这就是它应该如何完成的。
推荐阅读
- r - 使用 for 循环在 R 中动态创建子集
- javascript - 如何以正确的顺序生成字母表?
- html - 为什么 href 在 iOS 上不起作用,而在包括 Mac 在内的任何其他设备上都可以正常工作?
- html - Angular 模板驱动表单:验证至少一个已填充
- html - 为什么 Atom 报相同 ID 错误失败?
- python - 如何在 Python 中创建文件?
- php - Laravel 8 - 在 StudentController.php 中找不到错误类“App\Student”
- wpf - 如何向 RichTextBox 中的段落元素添加额外功能
- php - PHP API 偏移分页
- html - 使用隐藏元素代码时,文本不在列的中心