tenho um pacote a.b
dentro do pacote eu tenho uma classe X
quero q essa classe X só seja visivel para algumas classes do meu programa
eu poderia colocar visibilidade de pacote na classe X, e colocar no pacote a.b as classes q eu quero q possam acessar essa classe, mas isso iria ferir um pouco a hierarquia de classes q planejei pro programa
no caso, eu queria q ela fosse visível para as classes do pacote a.b.c
se as classes q tu quer usar estão em a.b, e as classes q tu vai fazer pra usa-las estão em a.b.c, não tem jeito, a tua classe X terá q ser publica!
eh, imaginei
mas quando um método é chamado… nao tem como eu obter o nome da classe onde ocorreu a chamada?
[quote=“mmpaulo”]eh, imaginei
mas quando um método é chamado… nao tem como eu obter o nome da classe onde ocorreu a chamada?[/quote]
tem, passando o nome da classe como argumento aeheaheaheaheahae, é meio gambiarra mas funciona… hahaha, ja q tu vai ta codando na classe q vai ta chamando esse método, tu sempre vai saber o nome dela pra poder enviar no parametro… :lol:
hheheheh é… seria possivel assim…
o chato é q qualquer classe poderia fingir que é uma outra, para poder acessar essa classe protegida
[quote=“mmpaulo”]hheheheh é… seria possivel assim…
o chato é q qualquer classe poderia fingir que é uma outra, para poder acessar essa classe protegida[/quote]
Acho que temo como voce descubrir a classe usando o
(Thread) Thread.currentThread()).getContextClassLoader()
E ai lá voce ve quem deu o “load” na sua classe e consequentemente que invocou voce…esse exemplo só seria falho caso fosse uma variavel manipulada por varias threads…
Ou seja
Classe1
bla bla = new bla();
bla.metodo();
Classe2
bla bla = new bla();
bla.metodo();
Funcionaria…
Já
classe 1
bla bla = new bla();
bla.metodo();
classe 2
bla.metodo();
Não funcionaria…