Я стараюсь ограничивать доступ к методу класса, созданного мной к исключительно инстанциям типа определенного класса, который содержит как поле в мой класс Кустомлист Десео, которые только смогли добавлять элементы к этому CustomList, инстанции конкретного типа класса, который он также считает полем этим CustomList.
Он подумал, что может быть с интерфейсом было возможно делать, но я не был способен это осуществлять.
Схема была бы нечто похожим:
public class CustomList {
private List<Evento> lista;
private void añadirEvento(Evento evento){
//deseo que sólo puedan acceder a este método las instancia de la clase
//Prueba
lista.add(evento);
}
public class Prueba{
private CustomList listaEventos;
public Prueba(CustomList lista){
this.listaEventos = lista;
}
//Deseo que sólo esta clase Prueba pueda llamar al método añadirEvento de CustomList
}
Так как ты это комментируешь интерфейса, podrГ-эксперта делать следующее:
public class AppendableCustomList implements CustomList {
protected List<Evento> lista;
//no forma parte de la interfaz
private void añadirEvento(Evento evento) {
lista.add(evento);
}
//Otros métodos que estarán incluidos en la interfaz
}
Класс Тестирует tendrГЎ инстанцию этого класса:
public class Prueba {
AppendableCustomList MyCustomList = ....
}
Оставшаяся часть классов trabajarГЎ с той же инстанцией..., но она recibirГЎn как интерфейс, который не считает этим mГ©todo:
public OtraClase {
CustomList cl = getCustomList();
}
Ты можешь пытаться менять protected модификатор mГ©todo aГ±adirEvento и aГ±adir extends в классе Попытайся.
public class CustomList {
private List<Evento> lista;
protected void añadirEvento(Evento evento){
//deseo que sólo puedan acceder a este método las instancia de la clase
//Prueba
lista.add(evento);
}
public class Prueba extends CustomList{
private CustomList listaEventos;
public Prueba(CustomList lista){
this.listaEventos = lista;
}
//Deseo que sólo esta clase Prueba pueda llamar al método añadirEvento de CustomList
}
Из-за структурных вопросов Java, модификаторы доступа не позволяют различать между "типом" класса или другой, но он поставляет ограничения относительно того же класса или пакета, которому он принадлежит.
приходят в голову мне два способа осуществлять то, что ты ищешь.
mГ©todo только может быть instanciado, если класс предоставляет один parГЎmetro "Стоивший". В случае, если будет сделана с другого класса, созданная CustomList serГЎ недействительная. Потом serГЎ cuestiГіn делания одной comprobaciГіn, с getter, чтобы получать список и проверять, недействительная ли та же самая.
public class CustomList
{
public CustomList(String tipo)
{
private List<Evento> lista
if (tipo.equals("Valido"))
lista = new List<evento>;
else
lista = null;
private void añadirEvento(Evento evento){
lista.add(evento);
}
public class Prueba
{
private CustomList listaEventos = new CustomList("Valido");
public Prueba(CustomList lista){
this.listaEventos = lista;
}
}
, Если ты знаешь, что он не абсолютно сокращен до единственного класса и никогда serГЎ доступно с другой, ты можешь делать это таким образом.
public class CustomList
{
public CustomList(String clase)
{
private List<Evento> lista
if (clase.equals("Prueba"))
lista = new List<evento>;
else
lista = null;
private void añadirEvento(Evento evento){
lista.add(evento);
}
public class Prueba
{
private CustomList listaEventos = new CustomList(this.getClass().getSimpleName());
public Prueba(CustomList lista){
this.listaEventos = lista;
}
}