Java 类内集合的自定义getter?

Java 类内集合的自定义getter?,java,Java,如果类具有集合数据结构,可能是hashmap等,那么在类中使用.get(id)访问集合是可以接受的,还是应该编写一个调用hashmap.get(id)的方法 我不确定getter是否更适合来自外部请求的公共访问?翻转问题:为什么不直接使用hashmap 最终,答案取决于你实际在做什么。没有理由编写一个从类内部获取散列值的方法,除非您实际上需要做一些事情,而不仅仅是访问散列值。你的班级是地图的主人——按你的方式去做 如果向类的用户公开映射,答案可能不同。翻转问题:为什么不直接使用hashmap 最

如果类具有集合数据结构,可能是hashmap等,那么在类中使用.get(id)访问集合是可以接受的,还是应该编写一个调用hashmap.get(id)的方法

我不确定getter是否更适合来自外部请求的公共访问?

翻转问题:为什么不直接使用hashmap

最终,答案取决于你实际在做什么。没有理由编写一个从类内部获取散列值的方法,除非您实际上需要做一些事情,而不仅仅是访问散列值。你的班级是地图的主人——按你的方式去做

如果向类的用户公开映射,答案可能不同。

翻转问题:为什么不直接使用hashmap

最终,答案取决于你实际在做什么。没有理由编写一个从类内部获取散列值的方法,除非您实际上需要做一些事情,而不仅仅是访问散列值。你的班级是地图的主人——按你的方式去做


如果您向类的用户公开映射,答案可能会有所不同。

这两种方法都是可以接受的,具体取决于您想做什么-我能想到的创建访问器的最佳理由是,它可以用于维护不变量-无论是在类内部还是外部-但如果您不需要,直接使用它。

这两者都是可以接受的,这取决于您想做什么-我能想到的创建访问器的最佳理由是,它可以用于维护不变量-从类内部和外部-但是如果您不需要,直接使用即可。

我会将整个收藏归还给客户,让他们根据自己的需要处理

package misc;

import java.util.ArrayList;
import java.util.List;

public class Misx {
    private List<String> list = new ArrayList<String>();

    public List<String> getList() {
        return list;
    }

    public void setList(List<String> list) {
        this.list = list;
    }
}
package杂项;
导入java.util.ArrayList;
导入java.util.List;
公共类Misx{
私有列表=新的ArrayList();
公共列表getList(){
退货清单;
}
公共无效集合列表(列表){
this.list=列表;
}
}

我会将整个收藏归还给客户,让他们根据需要处理

package misc;

import java.util.ArrayList;
import java.util.List;

public class Misx {
    private List<String> list = new ArrayList<String>();

    public List<String> getList() {
        return list;
    }

    public void setList(List<String> list) {
        this.list = list;
    }
}
package杂项;
导入java.util.ArrayList;
导入java.util.List;
公共类Misx{
私有列表=新的ArrayList();
公共列表getList(){
退货清单;
}
公共无效集合列表(列表){
this.list=列表;
}
}

您能举一个您正在考虑的两种方法的例子吗?一个带有私有/受保护hashmap的类。。。。直接调用hashmap的.get()可以吗?还是应该创建一个getter…?您能举一个例子说明您正在考虑的两种方法吗?一个类,带有一个私有/受保护的hashmap。。。。直接调用hashmap的.get()可以吗,还是应该创建一个getter…?酷,它只是用于内部同一类的用法酷,它只是用于内部同一类的用法这种方法的问题是如果你的
Misx
类对
List
做了一些事情,并且需要在修改
List
时得到通知(例如,添加了一个元素)。没有任何Java集合触发事件,因此您将要求此类用户在修改列表时始终替换列表。如果不提供对
列表的直接访问,则可以避免此问题此方法的问题是如果您的
Misx
类对该
列表进行了操作,并且需要提供信息d当
列表
被修改时(例如,添加了一个元素)。没有Java集合触发事件,因此您需要此类用户在修改列表时始终替换列表。如果您不提供对
列表